普通窗口:顶定义函数调用缺省函数

对话框(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();            //展示对话框