单击鼠标程序void CMouseMsgDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
      // TODO: Add your message handler code here and/or call default
CString strMessage;
strMessage.Format("Left Button Pressed at(%d,%d)",point.x,point.y); SetWindowText(strMessage); char* pszlcon;
if(nFlags&MK_CONTROL)
pszlcon=IDI_EXCLAMATION;
else
pszlcon=IDI_HAND; CDC* pDC=GetDC();
pDC->DrawIcon(point,AfxGetApp()->LoadStandardIcon(pszlcon));
ReleaseDC(pDC);

CDialog::OnLButtonDown(nFlags, point);
}1.pszlcon为字符型指针变量,那么这行pszlcon=IDI_EXCLAMATION;给pszlcon
  赋的IDI_EXCLAMATION变量是一个地址吗?2.CDC* pDC=GetDC();这行中CDC 是什么类型?GetDC()返回的是什么内容?3.AfxGetApp()返回的是什么?起什么作用?4.ReleaseDC(pDC);起什么作用?

解决方案 »

  1.   

    1.
    pszIcon=MAKEINTRESOURCE(IDI_EXCLAMATION);要用MAKEINTRESOURCE宏改变IDI_EXCLAMATION为所需要的 char* 型2. CDC 是 Windows 设备环境,GetDC返回的是当前窗口或视图的设备环境DC.用这个CDC来进行绘图。
    3. AfxGetApp() 返回的是当前程序的 CWinApp指针,可以用它控制程序、读取或保存注册表、ini数据,以及帮助路径....,具体参见 MSDN CWinApp类说明。3. 因为pDC 占用了Windows的GDI 资源,所以当不在使用时要释放掉,否则时间长了会出现资源不足。