有关C图形界面编程的入门问题

一、如何在屏幕上画一个图形对象二、如何控制图形的位置及大小三、如何控制图形的颜色、线型或填充等属性四、如何定义一个图形的内存数据用VC的MFC编... 一、如何在屏幕上画一个图形对象
二、如何控制图形的位置及大小
三、如何控制图形的颜色、线型或填充等属性
四、如何定义一个图形的内存数据
用VC的MFC编
展开
 我来答
我勒格去啊
推荐于2016-04-12
知道答主
回答量:18
采纳率:0%
帮助的人:18.6万
展开全部

你的问题比较专业,我也不算大牛级别的,这里说说我的回答:

  1. 画图形现在很少凭空画了,现在通常使用资源文件配置图形界面。

    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); 

  2. 首先你要明白控制的概念。你说的控制放在代码层次说都基于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);

  3. 控制图形的颜色,线性这些东西都是图形对象的属性,自行修改即可。

  4. 自定义图形的内存数据。你说的内存数据是GDI中的DC概念吧,首先必须获得一个设备描述表句柄(DC),然后在图形绘制时,你把这个句柄作为一个参数传递给GDI图形绘制函数。不过现在早就用GDI+了,简单地创建一个图形对象(Graphics),然后以你熟悉的面向对象的编程方式调用它的方法即可,譬如上面的graphics.DrawImage。

guansong28
2014-12-02 · TA获得超过766个赞
知道小有建树答主
回答量:944
采纳率:0%
帮助的人:536万
展开全部
你看看OPENCV?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式