CMFCToolBar插入组合框

刚在CSDN博客上面看到一篇文章,讲解VS2008中的新类CMFCToolBar的使用, 其中有个关于插入组合框的部分居然要修改MFC的源代码,  文章链接 http://blog.csdn.net/chenjelly/article/details/6718478  


这里贴出正确的插入方法:


1. MainFrm.h, 声明变量

CMFCToolBarComboBoxButton  *m_comboAddress;


2. MainFrm.cpp, 在OnCreate函数中创建工具条并且插入一个组合框

if (!m_wndToolBar.CreateEx (this, TBSTYLE_FLAT,CBRS_SIZE_FIXED | AFX_DEFAULT_TOOLBAR_STYLE) ||!m_wndToolBar.LoadToolBar (IDR_MAINFRAME, uiToolbarColdID, uiMenuID, FALSE /* Not locked */, uiToolbarDisID, 0, uiToolbarHotID, uiToolbarPresID)){TRACE0("Failed to create toolbar\n");return -1;      // fail to create}//插入组合框m_wndToolBar.InsertButton (CMFCToolBarComboBoxButton(ID_GO_ADDRESS_EDIT, 0), 3);//设置组合框属性m_comboAddress = (CMFCToolBarComboBoxButton*)m_wndToolBar.GetButton(3);m_comboAddress->EnableWindow(TRUE);m_comboAddress->SetCenterVert();m_comboAddress->SetDropDownHeight(100);//设置下拉列表的高度m_comboAddress->SetFlatMode();//添加内容m_comboAddress->AddItem(_T("once"));m_comboAddress->AddItem(_T("if only"));m_comboAddress->AddItem(_T("P.S.I Love You"));m_comboAddress->AddItem(_T("Love Me If You Dare"));m_comboAddress->SelectItem(0);			//默认选中DockPane (&m_wndToolBar);


另外的就是网上找的一篇文章了


VC2008在CMFCToolBar工具栏中加入组合框

如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的:

To add a combo box button to a toolbar, follow these steps:

1. Reserve a dummy resource ID for the button in the parent toolbar resource.

2. Construct a CMFCToolBarComboBoxButton object.

3. In the message handler that processes the AFX_WM_RESETTOOLBAR message, replace the dummy button with the new combo box button by using CMFCToolBar::ReplaceButton.

具体过程如下:

1.在工具栏资源编辑器中加入id为IDR_COM的空白工具栏,

2.在头文件中定义组合框

CMFCToolBarComboBoxButton* m_ComboButton; 

3.BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)中添加消息响应

    ON_REGISTERED_MESSAGE(AFX_WM_RESETTOOLBAR, OnToolbarReset)

在头文件中声明消息函数:

     afx_msg LRESULT OnToolbarReset(WPARAM,LPARAM);

在CMainFram中定义处理函数:

LRESULT CMainFrame::OnToolbarReset(WPARAM wp,LPARAM lp)
{      
     m_ComboButton = new CMFCToolBarComboBoxButton(IDR_COM,GetCmdMgr ()->GetCmdImage (IDR_COM, FALSE));

     m_ComboButton->EnableWindow(true);
     m_ComboButton->SetCenterVert();
     m_ComboButton->SetDropDownHeight(25);
     m_ComboButton->SetFlatMode();
     m_ComboButton->AddItem(_T("OPTION1"));
     m_ComboButton->AddItem(_T("OPTION2"));
     m_ComboButton->SelectItem(0); 
     m_wndToolBar.ReplaceButton (IDR_COM, *m_ComboButton);
 return 0;
}

2、添加组合框的事件消息响应函数

消息映射:

ON_COMMAND(IDR_COM, &CMainFrame::OnClickComboBox)
 ON_CBN_SELCHANGE(IDR_COM,&CMainFrame::OnSelChangeClick)//别忘了在TOOLBAR中添加IDR_COM资源。

消息声明:

afx_msg void OnSelChangeClick();
 afx_msg void OnClickComboBox();

消息处理函数:

void CMainFrame::OnSelChangeClick()
{
 CMFCToolBarComboBoxButton* pSrcCombo = CMFCToolBarComboBoxButton::GetByCmd (IDR_COM, TRUE);
 int index = m_ComboButton->GetCurSel();
 index = pSrcCombo->GetCurSel();
 CString str = pSrcCombo->GetItem(index);
}

void CMainFrame::OnClickComboBox()
{

}

(注意:一定要GetByCmd;OnClickComboBox没有做任何处理,但是如果去掉的话,组合框将编程灰色,无法使用)。

注:更新工具栏:

1.工具栏的右侧向下的小箭头->添加或删除按钮->标准->重置工具栏

2.运行regedit打开注册表->HKEY_CURRENT_USER->Software->工程名,找到工程名将其从注册表中删之。









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

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

相关文章

VHDL中的左移函数

VHDL中的左移函数 原描述如下 function SHL (v2 : MVL7_VECTOR; fill : MVL7) return MVL7_VECTOR isvariable v1 : MVL7_VECTOR(v2 HIGH downto v2 LOW);vaiable shift_val : MVL7_VECTOR(v1 HIGH downto v1 LOW);variable I : integer; beginv1 : v2;--变量v1先保存参数v2的…

腾讯云,物联网通信产品,动态注册步骤

使用apipost,post方法。 test_sign.py脚本生成sign import hashlib import random import time import hmac import base64if __name__ __main__:sign_format %s\n%s\n%s\n%s\n%s\n%d\n%d\n%surl_format %s://ap-guangzhou.gateway.tencentdevices.com/device/r…

Visual Studio 2008破解版本

vs2008 keyPYHYP-WXB3B-B2CCM-V9DX9-VDY8T在卸载试用版的地方,输入上面的key,然后更新,就可以成为正式版。开始> 设置> 控制面版> 添加或删除程序> 卸载vs.net2008>输入正版cd-key.

图像的本质

图像的本质 图像是由像素点组成 像素点由RGB三色构成 所以表示一幅图像,有行 x 列 x(r,g,b)RGB的坐标 x RGB的值 t = imread(2.jpeg); pic.r = t;%显示红色分量 pic.g = t;%显示绿色色分量 pic.b = t;%显示蓝色分量 for i = 1 : 1597for j = 1 : 1600pic.r(i,j,1) = t(i,j…

水晶报表10高级开发版下载及序列号

水晶报表10高级开发版下载及序列号 分类: 编程语言 2011-04-28 22:24 526人阅读 评论(0) 收藏 举报 Crystal Reports 10 Advanced Developer (build 10.0.0.53327)下载地址: http://ftp.crystaldecisions.com/outgoing/Products/CR10DevEn.exe 序列…

Postman调用阿里云HTTPS动态注册接口(一型一密)

按照阿里云文档: 请求方式:post 地址格式: https://iot-auth.cn-shanghai.aliyuncs.com/auth/register/device 如下图写入参数: sign格式:deviceNamedeviceName1234productKeya1234******random123 下图中的秘钥指…

将MATLAB中的图像信息用到Vivado中

将MATLAB中的图像信息用到Vivado中 首先在MATLAB对图像读入到txt文件中。 clear; clc; t = imread(1.png); % 在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为: % fid=fopen(文件名,‘打开方式’) % 说明:其中f…

JUNOS Olive GRE Tunnel Configuration

still same topology used as previous posts. Added GRE tunnel in the topology with two new OSPF areas. version 10.4R3.4;system { backup-router 10.50.2.1; root-authentication { encrypted-password “$1$MsDQp3dk$uxdtlK7LKSqp4mHjg/zxZ1”; ## SECRET…

已知两个点的经纬度,计算两个点之间的距离(两种办法)

网上淘来了两种办法,一种是haversine公式,这个公式的算法在ubuntu下测试距离长测两个点,非常不准。(在我需要使用这个算法的芯片平台测试也不准,类似ubuntu平台的误差。在visual studio 跑原作者的c#程序,很…

Vivado HLS基本应用

Vivado HLS基本应用 1、双击Vivado HLS图标 2、创建工程可以,点快捷键或者从File->创建新工程 3、填写工程名和工程存放路径 3、添加主函数名,添加文件(如果有需要的话) 4、添加测试文件 5、优化文件的添加和主时钟的选择…

Yammer从Scala转向Java

近日,由Yammer雇员Coda Hale发给Typesafe的Scala商业管理层的邮件通过YCombinator被泄漏出来并在GitHub上刊出。该邮件确认Yammer正在将其基础设施栈从Scala迁回至Java,原因在于Scala的复杂性与性能问题。\u0026#xD;\nYammer的公关Shelley Risk向InfoQ证…

Java基本流程控制语句

package com.org.lxh;import java.util.Scanner;/*** Java流程控制语句,if,if……else,switch,while,do……while,for等等* author hemmingway <hemmingway163.com>***/ public class CommCtrl {/*** param args*/public static void main(String[] args) {// TODO Auto-…

Mozilla考虑支持H.264

历史上&#xff0c;Mozilla曾拒绝过使用非开放的编码解码器&#xff08;如H.264&#xff09;&#xff0c;InfoQ此前也就这一话题进行过报导。Mozilla之所以拒绝主要是因为支持H.264与它的思想观念不一&#xff0c;因为H.264有专利覆盖&#xff0c;并且由MPEG-LA许可使用。人们不…

芯昇 CM32M101A 固件库 W25Q128JWSIQ 驱动

注意:此型号的JEDEC ID是0xEF6018,不同于网上满天飞的驱动,调试此器件驱动一定要确认。 官方SDK里面的驱动有问题,读写数据乱码,个人感觉是完全搬运野火电子的,因为除了名不一样,格式一毛一样。 drv_spi.h #ifndef _DRV_SPI_H_ #define _DRV_SPI_H_#ifdef __cplusplu…

MATLAB实现简单目标跟踪

MATLAB实现简单目标跟踪 预处理:中值滤波; 目标检测:二值化 后处理:形态学滤波或者连通性处理 目标跟踪:计算形心 clear all; close all; %预处理-中值滤波 t = imread(1.png);%原始图像 t1 = rgb2gray(t);%灰度图像 t2=imnoise(t1,salt & pepper,0.3);%加入椒盐噪声…

Java数组操作

package com.org.lxh;import java.util.Arrays;/*** 讲解Java数组* author hemmingway <hemmingway163.com>**/ public class ArrayDemo {/*** param args*/SuppressWarnings("unused") //元注释&#xff0c;忽略没有使用的变量public static void main(Strin…

振臂高呼式的写作:谈肖亦农的《毛乌素绿色传奇》

这是2011年底我与肖亦农和鄂尔多斯文联主席乌力吉布林在人民大会堂参加中国作家协会代表大会的合影&#xff0c;半年后我们又在人民大会堂相聚&#xff0c;是参加肖亦农的最新作品《毛乌素绿色传奇》研讨会。 肖亦农是我多年的朋友&#xff0c;是兄长&#xff0c;也是内蒙老乡&…

蜕变与成长中的青春创作:评论家谈少数民族青年作家的创作

在日前由中国作家协会主办&#xff0c;中国少数民族作家学会、《民族文学》杂志社协办的少数民族青年作家作品研讨会上&#xff0c;来自全国的10位少数民族青年写作者成为主要研讨对象。他们是照日格图(蒙古族)、苏笑嫣(蒙古族)、鲍尔金娜(蒙古族)、陶丽群(壮族)、马金莲(回族)…

Ubuntu 国内镜像源

中科大镜像站 阿里云镜像站 兰州大学镜像站 北京理工大学镜像站 浙江大学镜像站 清华大学镜像站

彩色图转化为灰度图

彩色图转化为灰度图 源文件 `timescale 1ns / 1ps module rgb2gary(input [7:0] rgb_r,input [7:0] rgb_g,input [7:0] rgb_b,output [7:0] gary); //Verilog不支持小数 // assign gary = 0.299 * rgb_r + 0.587 * rgb_g + 0.114 * rgb_b; wire [17:0] gary_te…