首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC 控件选中有关问题 求解决

2013-04-20 
MFC 控件选中问题 求解决本帖最后由 rivaler 于 2013-04-11 10:52:03 编辑一个基本的 对话框首先添加一个

MFC 控件选中问题 求解决
本帖最后由 rivaler 于 2013-04-11 10:52:03 编辑 一个基本的 对话框
首先添加一个图片控件(大小是整个对话框的范围 就是该图片文件做背景),控件是加载了位图文件

然后再在上面随便添加一个按钮
(此时按钮控件已经在最上层了,覆盖了部分的背景)

鼠标点击按钮 但是无法选中 点击选中的一直是下面的背景的图片控件

就是说用工具箱往对话框中添加控件时候,当控件重叠时候 点击选中的是下面的控件。

控件重叠时候怎么选中上面的控件

求教解决方法 MFC 控件 选中
[解决办法]
如果你贴图片是为了对话框的背景的话,不需要用图片控件,可以直接把对话框的背景给贴上图片,程序如下:

先添加图片到资源里面,名字 IDB_PIC

void 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);
}

[解决办法]

引用:
如果你贴图片是为了对话框的背景的话,不需要用图片控件,可以直接把对话框的背景给贴上图片,程序如下:
先添加图片到资源里面,名字 IDB_PIC
void CFiveChessClientDlg::OnPaint() 
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMess……

++
直接在对话框上贴图
[解决办法]
楼主你是不是想给按钮添加响应函数,但是一直没法选中按钮,选中的是底下的图片控件?
如果是这样,你先移开图片控件,然后给按钮添加响应函数,再叠到一起,程序运行后点击按钮是会响应的,
你试试。
[解决办法]
改变了顺序之后 虽然能选中其他控件 但是背景图就覆盖了其他的控件了
那就把 控件 都加到 picture 控件里, 然后把 picture 的 属性 改为 WS_CLIPDRILDREN。
[解决办法]
那就这样吧,用键盘上的TAB键来选择对应要操作的控件,用键盘上下左右按键来移动。位置排列好后再去掉图片控件,对各个控件进行操作,最后再把图片放回去,这样应该可以吧,如果我没理解错误楼主的意思

热点排行