ocx控件移动的问题

我是学友 2016-12-07 03:49:26
刚开始学着做,在一个dialog上面有几个button
调用CWnd 类的SetWindowPos函数总是报异常

DialogMain::DialogMain(CWnd* pParent /*=NULL*/)
: CDialog(DialogMain::IDD, pParent)
{


CWnd *pWnd ;
pWnd = GetDlgItem(IDC_BUTTON_UP);
pWnd->SetWindowPos(NULL,0,0,50,50,SWP_NOZORDER);
}


然后断点跟踪发现pWnd 里的m_hWnd值有问题,哪位大神知道为什么啊,挺简单的代码跑不起来

...全文
244 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
三岁、就很帅 2016-12-07
  • 打赏
  • 举报
回复
加我qq吧 1090947849
我是学友 2016-12-07
  • 打赏
  • 举报
回复
引用 3 楼 swwllx 的回复:

CWnd *pWnd = GetDlgItem(IDC_STATIC_SHOW);
if (pWnd && IsWindow(pWnd->m_hWnd))
{
pWnd->SetWindowPos(NULL,cx/2-200,0,800,80,NULL); // 你自己设置
、、pWnd->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE);
}

你看看你的IDC_BUTTON是否正确 搜索下



这个button控件是没问题的,就是搞不懂为啥一直获取不到m_hWnd
三岁、就很帅 2016-12-07
  • 打赏
  • 举报
回复
IDC_BUTTON_UP 有可能你改了 但是你程序里面还是 IDC_BUTTON
三岁、就很帅 2016-12-07
  • 打赏
  • 举报
回复
CWnd *pWnd = GetDlgItem(IDC_STATIC_SHOW); if (pWnd && IsWindow(pWnd->m_hWnd)) { pWnd->SetWindowPos(NULL,cx/2-200,0,800,80,NULL); // 你自己设置 、、pWnd->ModifyStyle(SS_LEFT|SS_RIGHT,SS_CENTER,TRUE); } 你看看你的IDC_BUTTON是否正确 搜索下
我是学友 2016-12-07
  • 打赏
  • 举报
回复
引用 1 楼 swwllx 的回复:
你这段代码位置放错了
你这是初始化的时候 你的控件还没出来 句柄当然为空 报错了
添加Onsize函数 WM_SIZE 把你这段代码放Onsize里面



添加了WM_SIZE 消息还是不行啊
三岁、就很帅 2016-12-07
  • 打赏
  • 举报
回复
你这段代码位置放错了 你这是初始化的时候 你的控件还没出来 句柄当然为空 报错了 添加Onsize函数 WM_SIZE 把你这段代码放Onsize里面

3,248

社区成员

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

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