相关疑难解决方法(0)

如何设置win32 api c ++按钮背景颜色和文字颜色?

即时通讯使用win32应用程序中的简单按钮,我喜欢改变它的颜色和文字,但我无法从谷歌的所有搜索中找到如何做到这一点.我有这个代表一个按钮的代码:这是在rc文件中:

LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
IDD_DIALOG1 DIALOG 0, 0, 273, 209
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Win32  demo"
FONT 8, "Ms Shell Dlg"
{
    DEFPUSHBUTTON   "My Button1 ", IDOK, 59, 176, 69, 14
    PUSHBUTTON      "Log Off", IDC_BUTTON1, 155, 175, 54, 14
 }
Run Code Online (Sandbox Code Playgroud)

在主cpp文件中,我只是简单的Massegebox警报

case WM_COMMAND:
            switch(LOWORD(wParam))
            {
                case IDOK:

                    MessageBox(NULL, L"IDOK button pressed!", L"Pinky says...", MB_OK | MB_ICONEXCLAMATION);
                    break;
                case IDC_BUTTON1:
                    MessageBox(NULL, L"IDC_BUTTON1 button pressed!",L"Pinky says...", MB_OK | MB_ICONEXCLAMATION); …
Run Code Online (Sandbox Code Playgroud)

c++ winapi button background-color

6
推荐指数
1
解决办法
2万
查看次数

如何在Qt中设置按钮的背景颜色后保留Windows Aero主题?

有没有办法改变小部件的背景颜色而不失去它的风格?我的问题在具有Aero主题的Windows 7/Vista和Windows 8上也是可重现的.您可以在Qt Designer中看到它的外观:

背景颜色是顶部和底部按钮之间的唯一区别

这里我们有四个按钮:两个顶级小部件看起来都很好(与该程序的所有其他小部件一样),但两个底部小部件看起来都很旧.这种旧式的唯一原因是设置这些按钮的背景颜色(据我所知,桌面窗口管理器将样式重置为旧的,如果窗口小部件不是标准的).

那么,有没有办法强制桌面窗口管理器绘制没有标准背景颜色的按钮?(Microsoft Office可以做到,但我不确定它是标准功能)

你能推荐用现代(Aero主题)取代按钮标准图的Qt扩展吗?或者你可能知道更标准的方法吗?

我发现只有一种方法可以在不失去样式的情况下改变颜色:将部分透明的小部件放在按钮上方(并使鼠标点击透明).你可以在这里看到结果(我的框架比必要的大 - 它用于演示;我还需要色彩校正来补偿透明度,但这并不重要):

解决方法(半透明框架位于按钮上方)

它有效,但我不喜欢这个"解决方案".你有更好的主意吗?

windows qt aero background-color dwm

5
推荐指数
1
解决办法
716
查看次数

标签 统计

background-color ×2

aero ×1

button ×1

c++ ×1

dwm ×1

qt ×1

winapi ×1

windows ×1