永发信息网

VC++绘制窗口

答案:2  悬赏:60  手机版
解决时间 2021-03-05 20:50
  • 提问者网友:最美的风景
  • 2021-03-05 04:18
一、实训目的
通过本实训,应该可以创建一个用C++语言模拟的windows窗口。
1.掌握有关windows画图的API函数。
2.进一步理解多态。
3.理解类之间的关系。
4.掌握VC++调用Windows API的方法为。
二、实训内容及要求
使用c++模拟窗口,并且窗口上的标签,按钮都要对象化。
1. 项目需求
1)用C++语言编写模拟外观类似windows 的窗口。
2)用面向对象的方法实现。
3)窗口调用API的画图函数画出窗口,例如画点、线、矩形。
4)定义开发者自己的Windows窗体类(画窗体类)。
2. 设计要求
1)使用UML绘制类的结构图和类的关系图。
2)窗体设计不能过于简单,我实现窗体、状态栏、最大化按钮,最小化按钮,关闭按钮等。
3. 开发环境
操作系统: Windows
开发语言: c++

老师给的相关提示
实现方法
A)窗体类(CWINDOW)
bool CWINDOW(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int red, int green, int blue) const = 0;
nLeftRect:指定矩形左上角的逻辑X坐标。
nTopRect:指定矩形左上角的逻辑Y坐标。
nRightRect:指定矩形右上角的逻辑X坐标。
nBottomRect:指定矩形右上角的逻辑Y坐标。
int red; 代表窗口红色的深度 取值范围是( 0 – 255 )
int green; 代表窗口绿色的深度 取值范围是( 0 – 255 )
int blue; 代表窗口绿色的深度 取值范围是( 0 – 255 )
返回值 bool 调用成功返回 true ,否则返回flase
///////////////////////////////////////////////////////////////////////////
B)按钮类(CWINDOWS)
描绘窗口
bool CWINDOWS (int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int red, int green, int blue) const = 0;
nLeftRect:指定矩形左上角的逻辑X坐标。
nTopRect:指定矩形左上角的逻辑Y坐标。
nRightRect:指定矩形右上角的逻辑X坐标。
nBottomRect:指定矩形右上角的逻辑Y坐标。
int red; 代表窗口红色的深度 取值范围是( 0 – 255 )
int green; 代表窗口绿色的深度 取值范围是( 0 – 255 )
int blue; 代表窗口绿色的深度 取值范围是( 0 – 255 )
返回值 bool 调用成功返回 true ,否则返回flase
C)按钮类(CBUTTON)
描绘按钮
bool CBUTTON (int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int red, int green, int blue)
nLeftRect:指定矩形左上角的逻辑X坐标。
nTopRect:指定矩形左上角的逻辑Y坐标。
nRightRect:指定矩形右上角的逻辑X坐标。
nBottomRect:指定矩形右上角的逻辑Y坐标。
int red; 代表窗口红色的深度 取值范围是( 0 – 255 )
int green; 代表窗口绿色的深度 取值范围是( 0 – 255 )
int blue; 代表窗口绿色的深度 取值范围是( 0 – 255 )
返回值 bool 调用成功返回 true ,否则返回flase
D)状态栏类(CSTATUS)
描绘状态
bool CSTATUS (int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int red, int green, int blue)
nLeftRect:指定矩形左上角的逻辑X坐标。
nTopRect:指定矩形左上角的逻辑Y坐标。
nRightRect:指定矩形右上角的逻辑X坐标。
nBottomRect:指定矩形右上角的逻辑Y坐标。
int red; 代表窗口红色的深度 取值范围是( 0 – 255 )
int green; 代表窗口绿色的深度 取值范围是( 0 – 255 )
int blue; 代表窗口绿色的深度 取值范围是( 0 – 255 )
返回值 bool 调用成功返回 true ,否则返回flase

这是我们小学期的课题,里面很多东西都没学过,郁闷死了
我们现在只开设了C程序和面向对象,C++还是自学的
请各位高人指点,我在这先谢谢了!
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-03-05 04:48
去看《深入浅出VC++》 作者孙鑫
有配套视频教程 很通俗易懂 你会C++的话 很容易理解
看完学着做
这东西别人一句两句话也没法给你讲清楚
自己慢慢学吧 不是一天两天能搞定的
全部回答
  • 1楼网友:第四晚心情
  • 2021-03-05 05:12
this->invalidate(); //重绘所有窗口. this->invalidaterect();//重绘指定区域. 另外cview的窗口绘制是写在ondraw(cdc* pdc)里面的,而不是onpaint.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯