shlnanswer 2014-05-06 08:26 采纳率: 0%
浏览 905

OCX的对话框类的OnInitDialog中使用CButtonST类的函数不好使

我是菜鸟,没什么分,但是希望哪位大神帮我解答一下,我会非常非常感谢的,
我在对话框程序中的OnInitDialog()里写了m_btn.SubclassDlgItem(IDC_BUTTON3, this);
m_btn.SetIcon(IDI_ICON2);
m_btn.SetTooltipText(_T("This is a tooltip.\r\nMultiline!"));
m_btn.SetFlat(FALSE);代码,m_btn是CButtonST对象,在头文件中定义,运行程序可以使用,但是我放到OCX程序的对话框类的OnInitDialog函数中,就不好用了,本来作用是同时显示图标和文字,但是图标只显示了一小部分,而且tooltip提示也不好使,这是怎么回事?哪位好心的大神能帮我解答一下吗

  • 写回答

1条回答

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-03-09 13:09
    关注

    该回答引用ChatGPT

    您好,根据您提供的信息,可能有以下几个可能的原因:

    • 确保在OCX程序中包含了CButtonST类的头文件,并将其链接到OCX程序。
    • 确认您的OCX程序中是否已正确设置IDC_BUTTON3这个按钮控件的ID,可以在资源文件中查看并确认。
    • 确认在OnInitDialog()函数中正确调用了m_btn.SubclassDlgItem(IDC_BUTTON3, this)语句。请注意,这个语句的目的是将m_btn对象与IDC_BUTTON3按钮控件进行关联,确保这个按钮控件能够使用CButtonST类的成员函数。
    • 如果您在调用CButtonST类的成员函数时,按钮控件还没有被创建,那么这些成员函数可能会无法正常工作。请确保在调用SetIcon()、SetTooltipText()和SetFlat()函数之前,按钮控件已经被创建。

    如果您已经确认以上几个问题都没有出现,但仍然无法正常工作,可以尝试使用调试工具来进一步检查问题所在。您可以在OnInitDialog()函数中添加调试语句,比如使用OutputDebugString()函数输出调试信息到输出窗口。同时,您也可以在OCX程序中使用Spy++工具来检查按钮控件的属性、消息等,以便找出问题所在。

    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题