回 帖 发 新 帖 刷新版面

主题:Win32SDK编程如果将对话框作为主窗口?同注册窗口一样接收消息处理消息。

Win32SDK编程如果将对话框变量主窗口?同注册窗口一样接收消息处理消息? 我想将资源里的对话框作为程序的主窗口来用。有什么办法呢?要其功能和HWND CreateWindow的一样。

默认写法的那种主窗口太麻烦了,在上边建立按扭什么这样,很不方便,有没有我说的这个方式?在资源添加对话框作为主窗口?

回复列表 (共8个回复)

沙发

用CreateDialog
看windows程序设计 的 非模态对话框 的那一节吧,上面有个计算器的小程序,就是基于对话框的

板凳

不太明白,朋友能否帮我找出例子,或者写出一些资料。谢谢!

3 楼

已经给你找出例子了,

[color=FF0000]windows程序设计[/color] 的 [color=FF0000]非模态对话框[/color] 的那一节吧,上面[color=FF0000]有个计算器的小程序,有完整代码[/color],就是基于对话框的

4 楼

我没有这本书。电子版的有没有这个介绍?

5 楼

你先理清楚创建窗口的流程,在创建窗口的时候改为创建对话框就可以了.

6 楼

电子版的到处都是~~

7 楼

对话框接收消息同窗口方式一样吗?一样功能吗?不会是别一种方式吧。

8 楼

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL, (DLGPROC)About);
    return 0;
}

INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    UNREFERENCED_PARAMETER(lParam);
    switch (message)
    {
    case WM_INITDIALOG:
        return (INT_PTR)TRUE;

    case WM_COMMAND:
        if (LOWORD(wParam) == IDOK)
        {
            //do somethings...
        }
        else if (LOWORD(wParam) == IDCANCEL)
        {
            EndDialog(hDlg, LOWORD(wParam));
            return (INT_PTR)TRUE;
        }
        break;
    }
    return (INT_PTR)FALSE;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册