vc按钮重绘问题

classCXButton:publicCButton自定了一个按钮重绘类出现两个问题,在此请教高手一:用新类创建多个新按钮的话不知如何给每个按钮的写单击事件,不可能响应... class CXButton : public CButton
自定了一个按钮重绘类出现两个问题,在此请教高手
一:用新类创建多个新按钮的话不知如何给每个按钮的写单击事件,不可能响应同样的功能是不。、
二:如果不创建动态按钮在工具栏中按钮控件添加按钮后再关连新类重绘,会出现第一个按钮还没按
就是按下和鼠标停留响应(动态的不会),如果点击其他窗口的话它又正常了...........。
关连如下:
void CWinVSDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON1, bu); //bu为CXButton 变量
DDX_Control(pDX, IDC_BUTTON2, bu1);
}
展开
 我来答
Sephil
推荐于2016-10-20 · 知道合伙人IT服务行家
Sephil
知道合伙人IT服务行家
采纳数:616 获赞数:1036
熟悉常用语言和数据库,爱写代码

向TA提问 私信TA
展开全部

1.继承 OnCommand 函数,里面的参数wParam就是按钮的ID

BOOL CSearchDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
    switch (wParam)
    {
        case IDC_OK: 
            SetWindowText("OK"); break;
        case IDC_CANCEL: 
            SetWindowText("Cancel"); break;
        default:
            return CDialog::OnCommand(wParam, lParam);
    }
    return TRUE;
}


2.不需要动态创建按钮,只要将你的按钮类型声明成你的新按钮类型

.h

CXButton bu;

CXButton bu1;

.cpp // 你现有的代码就可以,不用改了

DDX_Control(pDX, IDC_BUTTON1, bu); //bu为CXButton 变量
DDX_Control(pDX, IDC_BUTTON2, bu1);

运行期就会有效果了

更多追问追答
追问
我就是这样的呀!出现第种倩况
追答
我试过的,一切正常啊
jellycgl
2014-06-17 · TA获得超过417个赞
知道小有建树答主
回答量:1149
采纳率:66%
帮助的人:891万
展开全部
关于第一个问题:
你可以在这个XButton类中用一个枚举标识你的button类型,这样你在单击时可以根据不同的类型处理不同的功能;
关于第二个问题:
你把资源里面的属性中的Visable属性设置为False,然后需要的情况下让它Show出来
当然,这些只是一个方法,希望对你有所帮助
追问
可给下代码吗?有点笨
visable是为假的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式