永发信息网

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

答案:2  悬赏:50  手机版
解决时间 2021-01-29 08:12
一、如何在屏幕上画一个图形对象
二、如何控制图形的位置及大小
三、如何控制图形的颜色、线型或填充等属性
四、如何定义一个图形的内存数据

用VC的MFC编
最佳答案
你的问题比较专业,我也不算大牛级别的,这里说说我的回答:
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。
全部回答
不留邮箱,怎么给你
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国邮政储蓄银行(大坪镇营业所)(大坪镇街上)
孙尚香怎么克制 怎么打孙尚香
力量所到之处,一切障碍全被扫除 指的是哪个成
右耳突发性耳聋,求助
通过检查证实为伤寒流行,引起流行的传染源是
咸阳机场到西安凌晨怎么去?
郑州附近有没有适合登山的地方
女朋友因受不了我管她管的太严,跟我分手了,
有句歌词是被爱的滋味是什么歌曲
仙剑奇侠传4什么时候拍电视剧
中国信合(市松桃苗族自治县大兴街上)地址有知
澳元兑换人民币汇率是多少
中国信合(大坪街上)地址在哪,我要去那里办事
钢琴,弹三个音三个音那种的时候踩延音踏板,
请问建行的企业帐户向个人帐户转帐一般要多少
推荐资讯
我记得我看过天下足球有一期是 巴萨门将平托
和清明雨上差不多节奏的歌有哪些?
当女生回复去去去怎么回答
中国电信(汤帝路营业厅)地址在什么地方,我要
泰国剧,毒爱,百度云资源
脚痛脚肿用什么泡脚最好
qq宠物矿工杰克可以挖到铁矿石吗??
讨求的意思是什么啊?知道的请说下!
中国银行(南大街支行)(中关村南大街34中关村
公司车如何上牌
萌战三国志了解下这游戏到底有多垃圾
锦州贴膜哪好
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?