没有办法通过代码更改CComboBox的Style为CBS_DROPDOWNLIST吗?

abcdwell 2010-12-07 03:10:38


// 要把CComboBox,即IDC_CBName的Style改为CBS_DROPDOWNLIST,
// 好像只有GetStyle(),没有SetStyle()
// 难道只能在创建CComboBox时设置Style吗?

CComboBox m_cbName;

...全文
603 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
a358250667 2012-03-28
  • 打赏
  • 举报
回复
CRect rRect;
// UINT unID=IDC_WAVE_LIST;
DWORD dwStyleEx = 0;
CFont * pfont=NULL;
pfont=m_combo.GetFont();
dwStyleEx = m_combo.GetExStyle();
//去除原来之CBS_SORT风格 ,加上了一堆风格
dwStyleEx = dwStyleEx & ~CBS_SORT | WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|WS_VSCROLL;
m_combo.GetWindowRect(&rRect);
ScreenToClient(&rRect);
// unID=m_rGHS.GetDlgCtrlID();
m_combo.DestroyWindow();
rRect.bottom+=150;
m_combo.Create(dwStyleEx, rRect, this, IDC_WAVE_LIST);
m_combo.ShowWindow(SW_SHOW);
m_combo.SetFont(pfont, TRUE);

原文:
http://blog.csdn.net/xiaolajiao8787/article/details/5810350
PunWinger 2010-12-08
  • 打赏
  • 举报
回复
再不行的话,考虑自己用Create方法来动态创建
abcdwell 2010-12-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 purple2727 的回复:]
要先GetStyle一下,然后修改
[/Quote]

[Quote=引用 6 楼 hgy413 的回复:]
GWL_EXSTYLE换成GWL_STYLE
[/Quote]

两位的方法都不行,
梧桐126 2010-12-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 abcdwell 的回复:]
C/C++ code

// 这样做对吗?

CComboBox *pCmbText;

pCmbText->ModifyStyle(0,CBS_DROPDOWNLIST);
[/Quote]要先GetStyle一下,然后修改
花熊 2010-12-07
  • 打赏
  • 举报
回复
GWL_EXSTYLE换成GWL_STYLE
花熊 2010-12-07
  • 打赏
  • 举报
回复

LONG lWindowLong=GetWindowLong(m_pCmbText.GetSafeHwnd(),GWL_EXSTYLE)|CBS_DROPDOWNLIST;
SetWindowLong(m_pCmbText.GetSafeHwnd(),GWL_EXSTYLE,lWindowLong);

abcdwell 2010-12-07
  • 打赏
  • 举报
回复

// 这样做对吗?

CComboBox *pCmbText;

pCmbText->ModifyStyle(0,CBS_DROPDOWNLIST);
abcdwell 2010-12-07
  • 打赏
  • 举报
回复
不行,

tigerMayDo 2010-12-07
  • 打赏
  • 举报
回复
CWnd::ModifyStyle
superarhow 2010-12-07
  • 打赏
  • 举报
回复
有CWnd::ModifyStyle和CWnd::ModifyStyleEx
不过有时候需要重新创建窗口
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧