普通窗口:顶定义函数调用缺省函数
对话框(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(); //展示对话框
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步