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

对话框位图描点有关问题

2012-12-31 
对话框位图描点问题BOOL CBMPDlg::OnInitDialog() {CDialog::OnInitDialog()// TODO: Add extra initiali

对话框位图描点问题

BOOL CBMPDlg::OnInitDialog() 
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
HBITMAP hBitmap; 
hBitmap = (HBITMAP)::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BMP)); 
    m_BMP.SetBitmap(hBitmap);
    
CBitmap CBMP ;
CBMP.LoadBitmap(IDB_BMP);
BITMAP Bitmap;
CBMP.GetBitmap(&Bitmap);

SetWindowPos(NULL,0,0,Bitmap.bmWidth,Bitmap.bmHeight,0);//改变对话框的大小
    m_BMP.MoveWindow(0,0,Bitmap.bmWidth,Bitmap.bmHeight,FALSE);//改变位图位置

CDC*mdc;
mdc=m_BMP.GetDC();//m_BMP为picture控件关联变量
 
for (int i = 1;i<Bitmap.bmWidth;i++)
for (int j = 1; j<Bitmap.bmHeight;j++)
{
mdc->SetPixel(i,j,RGB(255,0,0));
}

上面的代码显示将位图在picture控件显示,并希望达到给位图描点的功能,但是setpixel函数没有作用,最后显示结果只有位图,没有将图片描上红色,这是为什么???在对话框picture控件实现。
[解决办法]
初始化完成后,会调用OnPaint,你初始化时候画的东西,会被OnPaint重画掉。由于你没有在OnPaint中绘制,所以就没有了。因此要把绘制的东西放到OnPaint中调用才行。

热点排行