15,979
社区成员
发帖
与我相关
我的任务
分享
LRESULT Ctest2Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
{
CDC* pWinDC = GetWindowDC();
if (pWinDC)
DrawTitleBar(pWinDC);
ReleaseDC(pWinDC);
}
return CDialogEx::WindowProc(message, wParam, lParam);
}
void Ctest2Dlg::DrawTitleBar(CDC *pDC)
{
CRect reWin;
GetWindowRect(reWin);
CBitmap bit;
bit.LoadBitmap(IDB_BITMAP1);
CBrush brush(RGB(77, 77, 77));
pDC->SelectObject(brush);
pDC->PatBlt(0,0, reWin.Width(), GetSystemMetrics(SM_CYCAPTION)+10, PATCOPY);
//CDC memdc;
//memdc.CreateCompatibleDC(pDC);
//memdc.SelectObject(bit);
//pDC->StretchBlt(0,0,reWin.Width(), GetSystemMetrics(SM_CYCAPTION)+6,&memdc, 0,0,48,3,MERGECOPY);
}
void Ctest2Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CFileDialog OpenFileDlg(TRUE,NULL,NULL,0);
if(OpenFileDlg.DoModal() == IDOK)
{
//........
}
return;
}
case WM_NCPAINT:
{
HDC hdc;
hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
// Paint into this DC
ReleaseDC(hwnd, hdc);
return 0;
}
具体查一下MSDN吧,每个消息都有详细说明,绝对不能这样乱用.