有关C图形界面编程的入门问题
二、如何控制图形的位置及大小
三、如何控制图形的颜色、线型或填充等属性
四、如何定义一个图形的内存数据
用VC的MFC编 展开
你的问题比较专业,我也不算大牛级别的,这里说说我的回答:
画图形现在很少凭空画了,现在通常使用资源文件配置图形界面。
win32的调用语句是这样的(资源文件IDD_DIALOG):
nResult = DialogBoxParamW (hInstance, MAKEINTRESOURCEW (IDD_DIALOG), NULL, (DLGPROC) MyProc, (LPARAM) lpszCommandLine);
MFC是这样的:
// 创建主窗口,程序退出时CDlgMainFrame会自动释放LPCTSTR lpszClassName=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,
::LoadCursor(NULL,MAKEINTRESOURCE(IDD_DIALOG)));
// WS_EX_APPWINDOW可以让子窗口显示在任务栏中
m_pMainWnd = pMainWnd;
BOOL bResult = pMainWnd->CreateEx(WS_EX_APPWINDOW, lpszClassName, NULL, WS_POPUP|WS_VISIBLE, 0, 0, 0, 0, NULL, 0);
首先你要明白控制的概念。你说的控制放在代码层次说都基于windows消息机制的响应。消息可自定义亦可使用windows默认的消息名进行修改。
更改图形大小什么的,推荐用GDI+库。事例代码:
// 在指定位置绘制按钮
RectF grect;
grect.X=m_rcRect.left;
grect.Y=m_rcRect.top;
grect.Width = m_rcRect.Width();
grect.Height = m_rcRect.Height();
graphics.DrawImage(pImage, grect, iWidth*iButtonIndex,0,iWidth,iHeight, UnitPixel);
控制图形的颜色,线性这些东西都是图形对象的属性,自行修改即可。
自定义图形的内存数据。你说的内存数据是GDI中的DC概念吧,首先必须获得一个设备描述表句柄(DC),然后在图形绘制时,你把这个句柄作为一个参数传递给GDI图形绘制函数。不过现在早就用GDI+了,简单地创建一个图形对象(Graphics),然后以你熟悉的面向对象的编程方式调用它的方法即可,譬如上面的graphics.DrawImage。