sdk 的对话框上作图 如何在对话框上作图使用SDK 编程为何不能显示出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BOOL CALLBACK SetColorDlalogProc( //设置颜色颜色对话框! HWND hDlg, UINT message, WPARAM wparam, LPARAM lparam ){ HDC hdc; RECT Rect; PAINTSTRUCT ps; HBRUSH hbrush; switch(message){ case WM_INITDIALOG: return 1; case WM_COMMAND: GetClientRect(hDlg,&Rect); SetDlgItemText(hDlg,IDC_SETCOLOR,SetColorText[CmdSetColor]); hdc=GetDC(hDlg); hbrush=CreateSolidBrush(RGB(0,225,0)); SelectObject(hdc,hbrush); Rectangle(hdc,Rect.left,Rect.top,Rect.left+1000,Rect.top+1000); DeleteObject(hbrush); ReleaseDC(hDlg,hdc); switch(wparam){ case IDC_OK: EndDialog(hDlg,TRUE); break; case IDC_CONCEL: EndDialog(hDlg,TRUE); break; default:return 0; } break; case WM_HSCROLL: switch(LOWORD(wparam)){ } break; case WM_CLOSE: EndDialog(hDlg,TRUE); return 1; } return 0; } 我说,你绘错地方了WM_PAINT中写绘制部分WM_COMMAND这里不负责刷新的 画图一般在WM_PAINT中。你写在WM_COMMAND中,倒不是不行,问题是,你那个对话框触发WM_COMMAND消息的就两个按钮吧,一个ID_OK,一个是ID_CANCEL,而且全是关闭对话框的,怎么可能会出来图呢? 响应WM_PAINT消息//头文件中afx_msg void OnPaint();//.cpp文件中BEGIN_MESSAGE_MAP(CMyDlg, CDialog)ON_WM_PAINT()//...END_MESSAGE_MAP()void CMyDlg::OnPaint(){ CPaintDC dc(this); dc.MoveTo(10,10); dc.LineTo(100,100);} 不好意思,没看到是SDK编程可以对话框的WndProc函数中处理WM_PAINT消息使用BeginPaint() EndPaint()等函数 基于odbc的数据库访问 计算机图形学发展前景 How does scroll the screen from right to left instead of from which botton to top 多文档编程时怎么用好其中一view的GetClientRect() 请问怎么制作象Window media player里的声音控制滑条? 显示图片的问题??? 关于各种高级控件的mask的含义 EditBox中的回车处理 工程界朋友请进 如何在DLL中导出正常函数名 vs2008 对话框 类名 输出文字问题
( //设置颜色颜色对话框!
HWND hDlg,
UINT message,
WPARAM wparam,
LPARAM lparam
){
HDC hdc;
RECT Rect;
PAINTSTRUCT ps;
HBRUSH hbrush;
switch(message){
case WM_INITDIALOG:
return 1;
case WM_COMMAND:
GetClientRect(hDlg,&Rect);
SetDlgItemText(hDlg,IDC_SETCOLOR,SetColorText[CmdSetColor]);
hdc=GetDC(hDlg);
hbrush=CreateSolidBrush(RGB(0,225,0));
SelectObject(hdc,hbrush);
Rectangle(hdc,Rect.left,Rect.top,Rect.left+1000,Rect.top+1000);
DeleteObject(hbrush);
ReleaseDC(hDlg,hdc);
switch(wparam){
case IDC_OK:
EndDialog(hDlg,TRUE);
break;
case IDC_CONCEL:
EndDialog(hDlg,TRUE);
break;
default:return 0;
}
break;
case WM_HSCROLL:
switch(LOWORD(wparam)){
}
break;
case WM_CLOSE:
EndDialog(hDlg,TRUE);
return 1;
}
return 0;
}
WM_PAINT中写绘制部分WM_COMMAND这里不负责刷新的
//头文件中
afx_msg void OnPaint();
//.cpp文件中
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_WM_PAINT()
//...
END_MESSAGE_MAP()void CMyDlg::OnPaint()
{
CPaintDC dc(this);
dc.MoveTo(10,10);
dc.LineTo(100,100);
}
可以对话框的WndProc函数中处理WM_PAINT消息
使用BeginPaint() EndPaint()等函数