ActiveX中的对话框按钮无响应,求救啊!

aammdd 2010-07-15 09:42:43
大家好!我做了一个基于对话框的ActiveX控件,测试时,点击对话框上的“确定”按钮,但是对话框并没有关闭,而是没有任何响应。我在OnOK()中添加了MessageBox()语句,消息框测试时可以弹出,但是执行了CDialog::OnOK()后就像死机一样没响应了。我是想让ActiveX控件和普通的程序一样,点击其中的“确定”按钮,就退出对话框,我该怎么办呢?先谢谢大家了!
...全文
153 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gw_net 2010-07-19
  • 打赏
  • 举报
回复
断点以下看看在干什么?
CPU高不?
Daniel_31 2010-07-16
  • 打赏
  • 举报
回复
帮顶帮顶
梧桐126 2010-07-15
  • 打赏
  • 举报
回复
是不是需要初始化ActiveX
cpp2017 2010-07-15
  • 打赏
  • 举报
回复
如果使用ws_Child样式,那么就不能用onok关闭窗口,只能隐藏,因为子窗口是不能关闭的.


cpp2017 2010-07-15
  • 打赏
  • 举报
回复
如果你要使用弹出样式,那么:

if(IsWindow(m_DialogLogin.m_hWnd))
{
CRect rc;
GetWindowRect(&rc);
m_DialogLogin.MoveWindow(rc, TRUE);
}
aammdd 2010-07-15
  • 打赏
  • 举报
回复
ID是默认的。对话框的风格设为:下层 ,就会这样,改为:弹出就可以正常关闭了, 但是控件的位置又跑到屏幕的左上角了。
cpp2017 2010-07-15
  • 打赏
  • 举报
回复
你将对话框的样式改为WS_CHILD看看.
aammdd 2010-07-15
  • 打赏
  • 举报
回复
int CActiveXTestCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here

m_DialogLogin.Create(IDD_DIALOG_LOGIN, this);
m_DialogLogin.ShowWindow(SW_SHOW);
return 0;
}

void CActiveXTestCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
// TODO: Replace the following code with your own drawing code.

if(IsWindow(m_DialogLogin.m_hWnd))
{
m_DialogLogin.MoveWindow(rcBounds, TRUE);
}


}
cpp2017 2010-07-15
  • 打赏
  • 举报
回复
对话框的出现你是在哪里写的代码?
aammdd 2010-07-15
  • 打赏
  • 举报
回复
ID是默认的。对话框的风格设为:下层 ,就会这样,改为:弹出就可以正常关闭了, 但是控件的位置又跑到屏幕的左上角了。
whgale 2010-07-15
  • 打赏
  • 举报
回复
是不是ID不正确
OnOK的id你可以改成MFC对于确定按钮默认的,ID

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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