用vs2010 编写MFC程序 在做Ribbon界面,控件关联变量问题

用vs2010编写MFC程序在做Ribbon界面的时候在面板上面放了一个颜色按钮,现在我运行的时候怎么才能把用户选择的颜色值获得到?用GetColor()函数?,可是怎么... 用vs2010 编写MFC程序 在做Ribbon界面的时候 在面板上面放了 一个颜色按钮,现在我运行的时候怎么才能把用户选择的颜色值获得到?用GetColor()函数?,可是怎么给这个颜色按钮关联一个变量呢?还有好多面板上面的控件我都想关联一个变量,可是VS2010我实在找不到怎么关联面板上面控件的方法,求大牛帮帮忙啊
哎 下面那个大哥说的 啥?实在是没看懂!简单点儿描述就是怎么给ribbon上 面板里面的控件关联一个变量?
展开
 我来答
NVworkshop
2015-03-08 · TA获得超过377个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:174万
展开全部
GetValue()后 , 返回值t (COleVariant变量)中,COLORREF clr = t.intVal(就是这里)。
参考一下我的代码。

str.Format(_T("通道%d显示的颜色,可以由用户选择输入。"),ch);
CMFCPropertyGridColorProperty* pProp6 = new CMFCPropertyGridColorProperty(_T("颜色显示"), (_variant_t)m_lclDaqParam.m_clrCh[ch], NULL, str);
pProp6->EnableOtherButton(_T("其他..."));
pProp6->EnableAutomaticButton(_T("默认"), ::GetSysColor(COLOR_3DFACE));
pProp6->SetData(CHS_CHANNEL+600+ch);
//-----------------------------------------------------------------------------------------------------
int catorgries = (int) pProp->GetData();
COleVariant t = pProp->GetValue();

.....
else if ( (600<=catorgries) && ( 700> catorgries) )
{
ch = catorgries-CHS_CHANNEL-600;
COLORREF clr = t.intVal;
BYTE R = GetRValue(clr);
BYTE G = GetGValue(clr);
BYTE B = GetBValue(clr);
m_lclDaqParam.m_clrCh[ch] = RGB(R,G,B);
}
追问
简单点儿描述就是怎么给ribbon上  面板里面的控件关联一个变量?
追答
用ID关联   看这里   ID_DISP_OUTPUT_VIEW_CURRENT

new按钮
CMFCRibbonButton* pBtnOutputCurrent = new CMFCRibbonButton(ID_DISP_OUTPUT_VIEW_CURRENT, _T("当前视图"),-1,12);
pDispOuputView->Add(pBtnOutputCurrent);

。。。

添加消息循环
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)

。。。
ON_COMMAND(ID_DISP_OUTPUT_VIEW_CURRENT, &CMainFrame::OnDispLayoutOutputViewCurrent)
ON_COMMAND(ID_DISP_OUTPUT_VIEW_ALL, &CMainFrame::OnDispLayoutOutputViewAll)

。。。

响应函数
void CMainFrame::OnDispLayoutOutputViewCurrent()
{

。。。

这些都是我的工程里的代码,你试验一下,有问题问我。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式