對話框使用技巧集合
2006/12/15 23:34:18
Dialog & Windows 使用技巧
注:以下代碼以一個名為CTest6Dlg的對話框類為例
1. 在任務欄隱藏對話框 ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
2. 使對話框為頂層窗口 SetWindowPos(&this->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
3. 在運行時添加最大化,最小化按鈕 SetWindowLong(this->m_hWnd, GWL_STYLE,
GetWindowLong(this->m_hWnd, GWL_STYLE) |
WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
UpdateWindow();
4. 使能對話框右上角關閉按鈕
在OnInitDialog中
方法一:
CMenu* menu = GetSystemMenu(FALSE);
menu->ModifyMenu(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED );
方法二:
CMenu* menu = GetSystemMenu(FALSE);
menu->EnableMenuItem(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
5. 當對話框一部分在屏幕外時,顯示全部對話框 SendMessage(DM_REPOSITION);
6. 改變鼠標外形
添加 WM_SETCURSOR 消息映射函數
BOOL CTest6Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_HELP));
return 0;
}
7. 改變對話框背景色和文本顏色
在CTest6App的InitInstance中添加
SetDialogBkColor(RGB(255,0,0), RGB(0,255,0));
8. 改變對話框caption上的圖標
導入自己的圖標資源到工程中,把原來ID為 IDR_MAINFRAME 的資源刪除,把新的圖標的ID命名為IDR_MAINFRAME
9. 在主對話框顯示前,顯示一個login對話框
BOOL CTest6App::InitInstance()
{
//...
int nResponse;
CLoginDlg loginDlg;
nResponse = loginDlg.DoModal();
if (nResponse == IDOK)
{
}
if (nResponse == IDCANCEL)
{
return FALSE;
}
CTest6Dlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK )
{
}
else if (nResponse == IDCANCEL)
{
}
return FALSE;
}
然后重載CLoginDlg對話框的哦OnOK(),在其中判斷條件
void CLoginDlg::OnOK()
{
if (條件滿足)
CDialog::OnOK();
else
AfxMessageBox(_T("invalid password!"));
}
10. 在對話框中添加工具欄
方法一:添加以下代碼到 OnInitDialog 中
if ( !m_wndToolBar.Create(this) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR1) )
{
TRACE0("Failed to Create Dialog Toolbar\n");
EndDialog(IDCANCEL);
}
CRect rcClientOld; // 久客戶區RECT
CRect rcClientNew; // 加入TOOLBAR后的CLIENT RECT
GetClientRect(rcClientOld); //
// Called to reposition and resize control bars in the client area of a window
// The reposQuery FLAG does not really traw the Toolbar. It only does the calculations.
// And puts the new ClientRect values in rcClientNew so we can do the rest of the Math.
//重新計算RECT大小
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,
AFX_IDW_CONTROLBAR_LAST,
0,
reposQuery,
rcClientNew
下一頁
返回列表
返回首頁
主站蜘蛛池模板:
午夜剧场1000|
国产麻传媒精品国产AV|
久久婷婷人人澡人人喊人人爽|
波多野结衣在线观看一区二区三区|
四虎国产精品永久地址99|
国产又污又爽又色的网站|
国产精品视频李雅|
japonensisjava野外vt|
成年女人毛片免费观看97|
久久夜色精品国产噜噜|
欧美亚洲综合另类在线观看|
亚洲综合色一区二区三区小说
|
国产乱了真实在线观看|
四虎永久在线日韩精品观看|
国产香蕉一区二区三区在线视频|
zoom和okzoom在线视频|
成年女人视频网站免费m|
久久国产乱子免费精品|
最近免费中文字幕完整7|
亚洲国产欧美精品一区二区三区|
波多野结衣黑丝|
免费在线观看a级毛片|
羞羞漫画成人在线|
国产亚洲高清不卡在线观看
|
日产中文字乱码卡一卡二视频|
乱亲玉米地初尝云雨|
欧美国产在线视频|
亚洲欧美一区二区三区电影|
熟妇人妻不卡中文字幕|
免费一级大黄特色大片|
精品女同一区二区|
四虎永久免费地址ww484e5566|
野花视频在线官网免费1|
国产大学生一级毛片绿象|
久久五月天综合|
国产男人女人做性全过程视频|
尹人久久久香蕉精品|
国产精品白浆在线观看无码专区
|
偷拍区小说区图片区另类呻吟|
精品国产人成亚洲区|
哆啦a梦エロ本|