首页 > Windows开发 > 详细

如何让win32对话框居中显示

时间:2014-04-12 17:33:33      阅读:675      评论:0      收藏:0      [点我收藏+]

在编写win32对话框程序,如果是用visual studio建的win32对话框程序,默认是不居中显示的,about 对话框也是这样的,用资源编辑器打开,可以在属性里面设置居中center 为ture,因为win32资源文件是文本型,因此可以用记事本打开,

IDD_ABOUTBOX DIALOGEX 0, 0, 170, 62
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU

然后又将about对话框center 设置为false

IDD_ABOUTBOX DIALOGEX 0, 0, 170, 62
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU

 

发现

STYLE里面少了| DS_CENTER

由此可以得知,win32对话框程序是否居中有样式 DS_CENTER 控制,然后回到win32对话框程序代码中,找到以下函数

ATOM MyRegisterClass(HINSTANCE hInstance)
{
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);

   wcex.style            = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra        = 0;
    wcex.cbWndExtra        = 0;
    wcex.hInstance        = hInstance;
    wcex.hIcon            = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_TESTCPP));
    wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName    = MAKEINTRESOURCE(IDC_TESTCPP);
    wcex.lpszClassName    = szWindowClass;
    wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));

    return RegisterClassEx(&wcex);
}

 

将 wcex.style = CS_HREDRAW | CS_VREDRAW;

改为 wcex.style = CS_HREDRAW | CS_VREDRAW| DS_CENTER;”S_VREDRAW| DS_CENTER;

然后再重写编译,居中显示啦。

如何让win32对话框居中显示,布布扣,bubuko.com

如何让win32对话框居中显示

原文:http://www.cnblogs.com/ITBread/p/3658286.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!