MFC 控件选中问题 求解决 本帖最后由 rivaler 于 2013-04-11 10:52:03 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你贴图片是为了对话框的背景的话,不需要用图片控件,可以直接把对话框的背景给贴上图片,程序如下:先添加图片到资源里面,名字 IDB_PICvoid CFiveChessClientDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } CDC* pDC = GetDC(); CBitmap bmp1,bmp2,bk; CDC memdc; memdc.CreateCompatibleDC(pDC); bk.LoadBitmap(IDB_PIC); memdc.SelectObject(&bk); pDC->BitBlt(0,0,663,664,&memdc,0,0,SRCCOPY); bk.DeleteObject(); ReleaseDC(&memdc);} 我在对话框上用picture control 静态的加 图片当背景图 是为了整个对话框样式的设计(按钮的大小,位置等)所以动态的加没用 我在对话框上用picture control 静态的加 图片当背景图 是为了整个对话框样式的设计(按钮的大小,位置等)所以动态的加没用。3楼说的 移开也不好 因为既然是静态的背景图就占了整个对话框的大小了4楼说 改变Tab Order 改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了问题补充:整个对话框的布局 已经设计好了 (图片形式)怎么样以这个图片为模板 在设计对话框(将图片静态的设置为背景 然后将各个控件 按图片上的位置 排布)有没有类似的方法 改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了那就把 控件 都加到 picture 控件里, 然后把 picture 的 属性 改为 WS_CLIPDRILDREN。 那就这样吧,用键盘上的TAB键来选择对应要操作的控件,用键盘上下左右按键来移动。位置排列好后再去掉图片控件,对各个控件进行操作,最后再把图片放回去,这样应该可以吧,如果我没理解错误楼主的意思 大家最近都关注啥... CListView 怎么设置行高度? 关于编写播放器的问题 请问怎样读取二进制文件? 为什么模板类不可以写在DLL里?? 请教一个问题。急! 高分求救-Socket编程问题 请问这个编译错误怎么解决 请教ADO 驻留RAM的程序如何编写?有什么特点? 怎么取消CEdit控件的边框 100分求助一个关于在线程中read、write pipe的问题!
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2; // Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
CDC* pDC = GetDC();
CBitmap bmp1,bmp2,bk;
CDC memdc;
memdc.CreateCompatibleDC(pDC);
bk.LoadBitmap(IDB_PIC);
memdc.SelectObject(&bk);
pDC->BitBlt(0,0,663,664,&memdc,0,0,SRCCOPY);
bk.DeleteObject();
ReleaseDC(&memdc);
}
我在对话框上用picture control 静态的加 图片当背景图 是为了整个对话框样式的设计(按钮的大小,位置等)所以动态的加没用。3楼说的 移开也不好 因为既然是静态的背景图就占了整个对话框的大小了4楼说 改变Tab Order 改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了
问题补充:整个对话框的布局 已经设计好了 (图片形式)
怎么样以这个图片为模板 在设计对话框
(将图片静态的设置为背景 然后将各个控件 按图片上的位置 排布)有没有类似的方法
那就把 控件 都加到 picture 控件里, 然后把 picture 的 属性 改为 WS_CLIPDRILDREN。