【问题标题】:How to create win7 style button using CreateWindowEx [duplicate]如何使用 CreateWindowEx 创建 win7 样式按钮 [重复]
【发布时间】:2011-03-25 06:49:24
【问题描述】:

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

嗨, 我对 WinAPI 和 C++ 有点陌生,我正在使用 Visual Studio 2010。我想在主窗口中创建一些按钮。所以有两个问题:

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

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);
    }

我得到了非常难看的老式按钮。如何让它看起来像 Win7/Vista 按钮?或者更好的方法是如何让它像系统样式设置所说的那样(使用 XP 时获取 XP 样式按钮,使用 Vista 时获取 Vista 样式按钮等)?

谢谢

【问题讨论】:

  • 非托管 c++ 的一种简单方法是简单地将以下代码添加到 cpp:#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common -Controls' version='6.0.0.0' processorArchitecture='' publicKeyToken='6595b64144ccf1df' language=''\"") 更多详情:msdn.microsoft.com/en-us/library/windows/desktop/…

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


【解决方案1】:

您需要将清单链接到指定 v6 通用控件的应用。网络搜索将为您完成剩下的工作。

【讨论】:

    猜你喜欢
    • 2010-12-11
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2014-02-05
    • 2014-11-06
    相关资源
    最近更新 更多