CMFCColorDialog弹不出来或者CMFCColorButton的Other按钮无效

VS2008(SP1)在静态编译的程序中,可能VS2010也是一样. CMFCColorDialog弹不出来或者CMFCColorButton的Other按钮无效(其实本人目前发现这些新特性控件中CMFCEditBrowseCtrl控件的图标也是, CMFCTabCtrl控件创建成CMFCTabCtrl::STYLE_FLAT式样时也需要加载ribbon资源, 不然那些箭头不能显示),这时需要手动修改一下rc文件.

在Edit菜单中选择resource includes

在Read only symbol directives里面加入
#if !defined(_AFXDLL)
#include "afxribbon.rc"              // MFC ribbon and control bar resources
#endif

=============================================
插一句, 上面是在网上看到的, 其实不对的, 这里是今天修改的, 其实参考NewControls的列子, 用记事本打开*.rc文件修改后面的, 下面绿色粗体字是要自己添加的 (其实是用资源视图时, "编辑"->"资源包括", 在"编译时指令"中添加, 记得不要加错地方就行了)

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\NewControls.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"         // Standard components
#ifndef _AFXDLL
#include "afxribbon.rc"      // Ribbon and control bars
#endif

#endif

===========================分割线==========================
CMFCColorButton的other按钮弹不出来颜色对话框,是因为CMFCColorButton默认使用CMFCColorDialog来弹出来的,而这个对话框需要手动编辑一下资源,但是添加"afxribbon.rc" 后出现资源错误,郁闷,55555抓狂.......不过可以修改CMFCColorButton弹出系统颜色对话框来.就是下面这样... CMFCColorButton::bAltColorDlg变量为FALSE即可....

#ifndef _AFXDLLm_ColorPicker.EnableOtherButton(_T("Other"), FALSE, TRUE);
#endif

========================简单自绘CMFCColorButton=============================
//头文件MyColorButton.h

#pragma once
#include "afxcolorbutton.h"class CMyColorButton :public CMFCColorButton
{
public:CMyColorButton(void);~CMyColorButton(void);virtual void OnDraw(CDC* pDC, const CRect& rect, UINT uiState);virtual	void OnDrawFocusRect(CDC* pDC, const CRect& rectClient);};

//实现文件MyColorButton.cpp

#include "StdAfx.h"
#include "MyColorButton.h"CMyColorButton::CMyColorButton(void)
{
}CMyColorButton::~CMyColorButton(void)
{
}void CMyColorButton::OnDraw(CDC* pDC, const CRect& rect, UINT uiState)
{ASSERT_VALID(pDC);if (m_pPalette == NULL){RebuildPalette(NULL);}CPalette* pCurPalette = pDC->SelectPalette(m_pPalette, FALSE);pDC->RealizePalette();CSize sizeArrow = CMenuImages::Size();CRect rectColor = rect;COLORREF color = m_Color;if (color == (COLORREF) -1) // Automatic{//---------------------------// Draw automatic text label://---------------------------color = m_ColorAutomatic;}//----------------// Draw color box://----------------rectColor.DeflateRect(2, 2);pDC->Draw3dRect(rectColor, afxGlobalData.clrBtnHilite, afxGlobalData.clrBtnHilite);rectColor.DeflateRect(1, 1);pDC->Draw3dRect(rectColor, afxGlobalData.clrBtnDkShadow, afxGlobalData.clrBtnDkShadow);rectColor.DeflateRect(1, 1);if (color != (COLORREF)-1 && (uiState & ODS_DISABLED) == 0){if (afxGlobalData.m_nBitsPerPixel == 8) // 256 colors{ASSERT_VALID(m_pPalette);color =  PALETTEINDEX(m_pPalette->GetNearestPaletteIndex(color));}CBrush br(color);pDC->FillRect(rectColor, &br);}	if (pCurPalette != NULL){pDC->SelectPalette(pCurPalette, FALSE);}
}void CMyColorButton::OnDrawFocusRect(CDC* pDC, const CRect& rectClient)
{CSize sizeArrow = CMenuImages::Size();CRect rectColor = rectClient;	CMFCButton::OnDrawFocusRect(pDC, rectColor);
}







本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/243623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UART232

UART232 `timescale 1ns/1ns module uart_rx #(parameter UART_BPS = d9600, //串口波特率parameter CLK_FREQ = d50_000_000 //时钟频率 ) (input wire sys_clk , //系统时钟50MHzinput wire sys_rst_n , //…

Linux配置本地yum仓库及编译安装nginx

目录 一、Linux软件安装方式 1. 编译安装 2. rpm安装 3. yum源安装 二、Linux挂载光盘介绍 1. 软件安装包获取途径 2. 挂载光盘介绍 3. 挂载注意事项 三、配置本地yum仓库 四、编译安装nginx程序 五、补充 一、Linux软件安装方式 1. 编译安装 灵活性高&#xff0c…

世界上最幸福的人

《世界上最幸福的人:伊甸园不是我的天堂》是我策划的长篇小说。作者是居住在法国的女作家林风竹。2009年5月由文化艺术出版社出版。定价38元,全书400页,其中有32页彩色。封面是作者带有印象派风格的油画。书中还穿插了作者不少摄影作品。

心灵之光、思想之树:推荐《作家曰》

《作家曰:深圳晚8点文学对话录》由海天出版社出版了,这是我所见过的国内出版最快的一本书,从稿件齐全到出书上市一共不到半个月时间,绝对是深圳速度,令人惊叹。这本书是深圳文化学者胡野秋先生主持“深圳晚8点”&#…

CRectTracker类的使用方法及其静态库下CRectTracker无法显示鼠标光标解决方案

一 使用方法 1 定义成员变量 CRectTracker m_RectTracker; 2 构造函数设置样式 m_RectTracker.m_nStyle CRectTracker::resizeOutside|CRectTracker::solidLine; m_RectTracker.m_nHandleSize 6; m_RectTracker.m_rect.SetRect(0,0,0,0); 3 覆盖OnS…

MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件

MATLAB绘制正弦波、方波、三角波、锯齿波的mif文件 % 对波形进行等间隔采样,以采样次数作为 ROM 存储 % 地址,将采集的波形幅值数据做为存储数据写入存储地址对应的存储空间 % 采样次数为 212 = 4096 次,采集的波形幅值数据位宽 % 为 8bit,将采集数据保存为 MIF 文件 clc;…

一只幸运而悲哀的鹅

晚上陪朋友去旧鼓楼大街的酒吧和旧书店喝酒淘书,看到一只鹅明目张胆地走在大街上。 原来是被一个红衣男子收养的鹅,主人带着它在街上遛弯,时而将它抱起来,表情显示了人与鹅很深的感情。 这只鹅虽然老态龙钟,却气宇轩昂…

qt开发环境 - 丁林松教程,丑陋的计算器

没有加入弹出窗口 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>namespace Ui { class MainWindow; }class MainWindow : public QMainWindow {Q_OBJECTpublic:explicit MainWindow(QWidget *parent 0);~MainWindow();private slots:void on_pushBu…

在C++中子类继承和调用父类的构造函数方法

构造方法用来初始化类的对象&#xff0c;与父类的其它成员不同&#xff0c;它不能被子类继承&#xff08;子类可以继承父类所有的成员变量和成员方法&#xff0c;但不继承父类的构造方法&#xff09;。因此&#xff0c;在创建子类对象时&#xff0c;为了初始化从父类继承来的数…

《孩子,你如此优美:一位作家母亲的家教笔记》

《孩子&#xff0c;你如此优美》&#xff08;华东师范大学出版社2009年4月出版&#xff09;是顾艳写的一部长篇纪实散文。记录了她从怀孕到女儿出生&#xff0c;之后女儿上学——分别在浙江大学、香港岭南大学、北京大学&#xff0c;一直到美国斯坦福大学留学的经历。顾艳是我的…

VGA彩条显示

VGA彩条显示 (1) 系统上电后,板卡传入系统时钟(sys_clk)和复位信号(sys_rst_n)到顶层模块; (2) 系统时钟由顶层模块传入时钟生成模块(clk_gen),分频产生 VGA 工作时钟(vga_clk),作为图像数据生成模块(vga_pic)和 VGA 时序控制模块(vga_ctrl)的工作时钟; (3) 图像数据生成模…

故乡与文学:一场别开生面的跨年代文学对话(一)

6月12日下午&#xff0c;在北京语言大学艺术系展厅&#xff0c;我主持了题为“故乡与文学”的对话会。60后旅美女作家张人捷、70后旅法女作家林风竹、80后女评论家于一爽、北京电影学院文学硕士柳青等就张人捷的长篇小说《十年》、林风竹的长篇小说《世界上最幸福的女人》与北京…

C++中public,protected,private派生类继承问题和访问权限问题

当一个子类从父类继承时&#xff0c;父类的所有成员成为子类的成员&#xff0c;此时对父类成员的访问状态由继承时使用的继承限定符决定。 1.如果子类从父类继承时使用的继承限定符是public&#xff0c;那么 (1)父类的public成员成为子类的public成员&#xff0c;允许类以外的代…

学习易错笔记

学习易错笔记 将行同步时序图和场同步时序图结合起来&#xff0c;就构成了VGA时序图。VGA只能识别模拟信号&#xff0c;而FPGA输出的图像信息为数字信号。数字图像信号转化为模拟图像信号有二种方法&#xff0c;其一&#xff0c;使用专业的转换芯片&#xff0c;如常用的转换芯…

798的猫和人

两个女孩在模仿画中动作。 一只不知从哪走来的猫。 这是行为艺术还是装置艺术&#xff1f;观众也可以参与。不过有些许的恐怖。 又是模仿。三只装着衣服的龙。 圣之空间画廊内外

qt开发环境 - 丑陋的串口助手

qt版本&#xff1a;5.9.1 win版本&#xff1a;10.1706 本助手改自qt自带exmple中的terminal&#xff0c;去掉console相关内容&#xff0c;加入button textbowser textedit&#xff0c;只改变了mainwindow 下面是代码 /****************************************************…

OOo-MySpell 一个C++的拼写语法检查开源项目

地址: http://code.google.com/a/apache-extras.org/p/ooo-myspell/ 这个软件被应用到了 Pspell, OpenOffice, AbiWord, 等等.

与狼共舞·美女与野兽

收了一张法国女钢琴家埃莱娜格瑞莫的影碟&#xff0c;名为《埃莱娜格瑞莫&#xff1a;与狼共舞》&#xff08;Helene Grimaud:LIVING WITH WOLVES&#xff09;。前年曾读过她的一个自传《野变奏》&#xff08;上海教育出版社出版&#xff09;&#xff0c;去年还买过她一本传记《…

HDMI显示器驱动设计与验证

HDMI显示器驱动设计与验证 HDMI组成 HMDI数据传输图 TMDS信号连接图 HDMI彩条显示实验整体框图