BOOL CCDemoDlgDlg::OnInitDialog() { CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here CRect rect; GetWindowRect(&rect); CBitmap bmp; bmp.LoadBitmap (IDB_BITMAP1); CDC dc; CDC * pDC=GetDC(); dc.CreateCompatibleDC(pDC); dc.SelectObject(&bmp); CRgn rgn1; rgn1.CreateRectRgn (0,0,rect.Width(),rect.Height()); for (int x=0;x<rect.Width();x++) { for(int y=0;y<rect.Height();y++) { COLORREF cf=dc.GetPixel(x,y); if(cf==RGB(0,0,0)) { CRgn rgn2; rgn2.CreateRectRgn(x,y,x+1,y+1); rgn1.CombineRgn(&rgn1,&rgn2,RGN_XOR); } } } SetWindowRgn((HRGN)rgn1,TRUE); ReleaseDC(pDC); return TRUE; // return TRUE unless you set the focus to a control } BOOL CCDemoDlgDlg::OnEraseBkgnd(CDC* pDC) { // TODO: Add your message handler code here and/or call default CRect rect; GetWindowRect(&rect); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CDC dc; dc.CreateCompatibleDC(pDC); dc.SelectObject(&bmp); pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,SRCCOPY); return CDialog::OnEraseBkgnd(pDC); }