【MFC系列-第10天】非模式对话框开发
10.1 程序左上角圖標(biāo)設(shè)置
通過(guò)SendMessage發(fā)送WM_SETICON消息來(lái)設(shè)置
10.2 純Win32程序開(kāi)發(fā)和技巧(借助MFC源碼)
10.3 非模式對(duì)話框的調(diào)用
a)調(diào)用CDialog::Create函數(shù)來(lái)創(chuàng)建,并且調(diào)用ShowWindow來(lái)顯示;
b)單例模式每次判斷句柄存在就不重新創(chuàng)建,只要前端顯示出來(lái);
c)多例模式每次在堆空間中申請(qǐng)一個(gè)新的對(duì)象,再執(zhí)行Create函數(shù);
d)對(duì)話框?qū)傩栽O(shè)置中,如果打開(kāi)Visible屬性缺省就是可見(jiàn)(不用調(diào)用ShowWindow);
e)在Create函數(shù)第二個(gè)參數(shù)中帶入GetDesktopWindow函數(shù),可以讓非模式對(duì)話框成為獨(dú)立窗口,在任務(wù)欄中有窗口顯示;
10.4 MFC全局函數(shù)
MessageBox(API), CWnd::MessageBox(method)
AfxMessageBox:如果本進(jìn)程沒(méi)有主窗口不跟任何窗口關(guān)聯(lián),但是也會(huì)找到主窗口進(jìn)行附著;如果有主窗口就回附著在主窗口上;
AfxGetApp():獲取全局變量theApp(CWindApp)類對(duì)象的地址
AfxGetInstanceHandle:獲取theApp中的m_hInstance句柄(來(lái)自于WinMain參數(shù))
AfxGetAppName():獲取程序名稱(跟三樣?xùn)|西有關(guān)系?)
AfxGetMainWnd():優(yōu)先獲取theApp.m_pMainWnd指向的窗口類對(duì)象,如果該指針為空則以激活狀態(tài)的窗口為主窗口;
AfxInitRichEdit():對(duì)RichEdit控件初始化(否則不能使用該控件)
AfxSocketInit():內(nèi)部調(diào)用WSAStartup函數(shù)(API)
CModalDlg::CModalDlg(CWnd* pParent /*=NULL*/): CDialogEx(IDD_MODAL_DIALOG, pParent) {// 獲取全局對(duì)象地址CWinApp* pApp = AfxGetApp();//加載圖標(biāo)m_hIcon = pApp->LoadIcon(IDR_MAINFRAME);// 獲取實(shí)例句柄HINSTANCE hInst = theApp.m_hInstance;HINSTANCE hInst1 = AfxGetInstanceHandle();//獲取程序名稱LPCTSTR sAppName = AfxGetAppName();LPCTSTR sApp = theApp.m_pszAppName; } BOOL CModalApp::InitInstance() {//if (AfxMessageBox(_T("確定要啟動(dòng)嗎?"), MB_YESNO | MB_ICONQUESTION) == IDNO)// return FALSE; // AfxMessageBox(m_lpCmdLine); //指向命令行參數(shù)字符串的指針CString str;str.Format(_T("%d"), this->m_nCmdShow);AfxMessageBox(str);//AfxSocketInit();AfxInitRichEdit();CModalDlg dlg;//m_pMainWnd = &dlg;INT_PTR nResponse = dlg.DoModal();return FALSE; }this指針等價(jià)于theApp.m_pMainWnd
總結(jié)
以上是生活随笔為你收集整理的【MFC系列-第10天】非模式对话框开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 移动叔叔电脑版怎么用移动叔叔root工具
- 下一篇: 【MFC系列-第11天】CWinApp类