解决方案 »
- 在VC++开发的应用程序中,如何得知别人ping我?
- 有关一个指针的问题
- vc++客户端怎么样和网页通信呢?
- 如何在32位程序中调用16位DLL,在线,急,多谢各位了
- ★★★★★★★★★★初学VC,请指点!!!!★★★★★★★★★★
- 急!请问如何查看CFile::Open()操作的CFileException*的意思?谢谢!
- 哪儿可以下载3CD的msdn Oct 2001版?
- 请教‘.ceb’文件用什么打开?
- 在CMainFrame类中通过发送PostMessage消息,执行CDialog类的控件响应函数?
- 提一个问题,来者有分
- 有木有高手对SIFT算法有研究
- OpenMp并行计算,为嘛双核没单核快,还比单核慢三倍
谢谢回答。
对话框中,分割成好几个大的区域,每个区域都是bmp图片做背景,上面有checkbox等控件。onpaint中调用描画函数,描画函数中,先loadbmp,设置大小,显示。
然后计算checkbox等的位置,然后movewindow,放到该放的地方。我是这么处理的,请问有什么问题么?
你应该描述:
1、哪一步分被挡住,是不是原先checkbox的部分,被其他对话框挡住么?
2、重新描绘,是否现在又不被挡住了,比如移开其他对话框?
3、你说全屏刷新可以出来?是不是你自己代码里写了全屏刷新的代码?
谢谢回复,我也觉得写的不太清楚,果然让人看不懂啊,我重新整理了一下。
弹出来的是一个全屏显示的无模式对话框,用Create函数动态创建的,所有控件的大小,摆放位置都是集中在一个描画函数DrawResult()里。该函数在OnSize,OnPaint中被调用。对话框分成左右两大部分,是两个PICTURE控件,这两个控件都是load BMP图片做背景,然后再BMP上面特定的地方,放置checkbox, ComboBox等需要的控件。对话框刚初始化好全屏现实的时候,所有控件都可以正常显示。
1,如果用一个全屏程序挡住对话框,再让对话框出现的时候,对话框的所有控件依然全部正常显示。
2,如果用一个很小的窗口,挡住对话框的一部分,在让对话框全屏显示的时候,对话框就只能刷新被挡住的那一部分, 其余部分的checkbox,combobox等控件就不见了。而出了控件以外的部分,比如BMP背景图片,文字等显示均正常。我已经debug过,上诉1,2两种情况,调用的是同一个函数DrawResult()。请有经验的大虾帮忙分析,谢谢。
void CmyPlayerDlg::loadMainSkin(CDC*dc)
{
CDC MemDC;
CBitmap m_bmp;
BITMAP m_bitmap; m_bmp.LoadBitmap(IDB_MAIN);
m_bmp.GetBitmap(&m_bitmap);
MemDC.CreateCompatibleDC(dc);
MemDC.SelectObject(&m_bmp); dc->BitBlt(0,0,m_bitmap.bmWidth,m_bitmap.bmHeight,&MemDC,0,0,SRCCOPY); m_bmp.DeleteObject();
MemDC.DeleteDC();
}//在OnPaint()添加如下内容
CPaintDC dc(this);
loadMainSkin(&dc);
这样就不会覆盖掉其他控件了。