作者:万幼南 | 来源:互联网 | 2023-05-19 14:10
普通窗口:顶定义函数调用缺省函数对话框(Dialog):缺省函数调用自定义函数模式对话框:对话框显示的时候,会禁止其他窗口和用户交互(有限制)无模式对话框:不会限制其他窗口和用户操
普通窗口:顶定义函数调用缺省函数
对话框(Dialog):缺省函数调用自定义函数
模式对话框:对话框显示的时候,会禁止其他窗口和用户交互(有限制)
无模式对话框:不会限制其他窗口和用户操作
对话框的基本使用
1. 窗口处理函数(windows自己写好了,需要我们定义一个给他调用)
2. 注册窗口类(windows给我们做好了)
3. 创建对话框
4. 对话框关闭
创建一个如下的格式的函数给windows写好的窗口处理函数调用
INT CALLBACK _DialogProc(HWND hWnd, UINT msgId, WPARAM wParam, LPARAM lParam);
//返回TRUE(已经处理好了):不让真正的系统定义的窗口处理函数给我们处理(剩下的逻辑[处理消息的])
//返回FALSE(还没处理好):交给缺省处理函数处理(剩下的逻辑[处理消息的])
模式对话框(阻塞函数)的创建
创建模式对话框不是产生WM_CREATE 而是 WM_INITDIALOG 这个msgId 然后显示dialog
INT DialogBox();
EndDialog(hWnd,nResult)[解除阻塞,并且销毁窗口]进行销毁对话框{不能使用DestroyWindow()这个函数不能解决阻塞问题 }
无模式对话框
HWND CreateDialog( //非阻塞函数,关闭的时候使用DestroyWindow()??可以使用EndDialog()吗
HINSTANCE hIns,
LPCTSTR lpTemplate, //dialog的id
HWND hWndParent,
DLGPROC lpDlgProc,
);
ShowWindow(); //展示对话框