【发布时间】: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