如何使用CreateWindowEx创建win7样式按钮

时间:2011-03-24 22:12:17

标签: c++ visual-studio-2010 winapi button resources

  

可能重复:
  winapi CreateWindowEx -> create button with user system styles?

您好, 我是WinAPI和C ++的新手,我使用的是Visual Studio 2010.我想在主窗口中创建一些按钮。所以有两个问题:

1)我可以使用资源编辑器创建的对话窗口作为主窗口,这样我就不必在“post-WM_CREATE message”部分“手动”创建所有控件吗?

2)(如果我不能使用带有按钮的资源脚本制作窗口作为主窗口)当我使用CreateWindowEx“手工制作”按钮时:

case WM_CREATE:

    {
    HFONT buttonFont = CreateFont(-11, 0, 0, 0, 400, FALSE, FALSE, FALSE, 1, 400, 0, 0, 0, fontButtonFont);
    HWND bMainOK = CreateWindowEx(
        0, 
        WC_BUTTON, 
        szOkButton, 
        WS_VISIBLE | WS_CHILD | WS_TABSTOP | BS_PUSHBUTTON, 
        24, 200, 75, 23, 
        hWnd, 
        0, 
        hInst, 
        0);
    SendMessage(bMainOK, WM_SETFONT, (WPARAM)buttonFont, FALSE);
    }

我得到了非常丑陋的oldstyle按钮。如何让它看起来像Win7 / Vista按钮?或者更好的我如何使其表现为系统样式设置(当使用XP获取XP样式按钮时,使用Vista获取Vista样式按钮等)?

由于

1 个答案:

答案 0 :(得分:1)

您需要将清单链接到指定v6常用控件的应用。 Websearch将为您完成剩下的工作。