class CMemDC
{
public:
CMemDC()
{
hMemDC = CreateCompatibleDC(NULL);
hBitmap = CreateCompatibleBitmap(hMemDC, 16, 16);
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap); SetTextColor(hMemDC, RGB(255,0,0));
TextOut(hMemDC, 0, 0, _T("OK"), 2);
}
virtual ~CMemDC()
{
SelectObject(hMemDC, hOldBitmap);
DeleteObject(hBitmap);
DeleteDC(hMemDC);
}public:
HDC hMemDC;
HBITMAP hBitmap;protected:
HBITMAP hOldBitmap;
};class CMyDlg
{
CMemDC memDC;
};BOOL CMyDlg::OnInitDialog()
{
CStatic *pImage=(CStatic*)GetDlgItem(IDC_IMAGE);
pImage->SetBitmap(memDC.hBitmap);
}
问题是:pImage->SetBitmap(memDC.hBitmap);为什么不起效?
而且,我把CMemDC中所有代码都移入CMyDlg::OnInitDialog(),却又能看到效果。
{
public:
CMemDC()
{
hMemDC = CreateCompatibleDC(NULL);
hBitmap = CreateCompatibleBitmap(hMemDC, 16, 16);
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap); SetTextColor(hMemDC, RGB(255,0,0));
TextOut(hMemDC, 0, 0, _T("OK"), 2);
}
virtual ~CMemDC()
{
SelectObject(hMemDC, hOldBitmap);
DeleteObject(hBitmap);
DeleteDC(hMemDC);
}public:
HDC hMemDC;
HBITMAP hBitmap;protected:
HBITMAP hOldBitmap;
};class CMyDlg
{
CMemDC memDC;
};BOOL CMyDlg::OnInitDialog()
{
CStatic *pImage=(CStatic*)GetDlgItem(IDC_IMAGE);
pImage->SetBitmap(memDC.hBitmap);
}
问题是:pImage->SetBitmap(memDC.hBitmap);为什么不起效?
而且,我把CMemDC中所有代码都移入CMyDlg::OnInitDialog(),却又能看到效果。
解决方案 »
- 大牛,win32中ListView_DeleteAllItems()卡了,急需求解?(内附相关asm)
- 为何VC编译出来的函数,即使什么也不做,也要push ebp?
- !!寻求图像处理高手合作!!
- 网络通信客户端封装
- 关于程序使用内存的变化
- Windows NT/XP和启动的问题,如何用VC++让基于NT核心的系统关机,重启,注销
- 发送JSON格式数据
- 请教关于串口控件MSCOMM的打包问题?
- 我看大家的提问多很厉害,我好象还是小学生水平,
- -----------------CSDN真有点让我失望,这么一个简单问题也解决不了-------------->
- 甘特图控件
- 请教msxml中文版与英文版有什么区别
{
public:
CMemDC()
{
hMemDC = CreateCompatibleDC(NULL);
hBitmap = CreateCompatibleBitmap(hMemDC, 16, 16);
hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap); SetTextColor(hMemDC, RGB(255,0,0));
TextOut(hMemDC, 0, 0, _T("OK"), 2);
SelectObject(hMemDC, hOldBitmap);
}
virtual ~CMemDC()
{
DeleteObject(hBitmap);
DeleteDC(hMemDC);
}public:
HDC hMemDC;
HBITMAP hBitmap;protected:
HBITMAP hOldBitmap;
};试试