在c++中 如何实现绘图,

hejunbin 2006-04-30 08:30:42
新手,这次把自己所有的分都给出了,(怎么只能是100最高啊,就这样吧,要是解决不了以后再发)
主要是看这个,搞的郁闷,看了老师给的书,不大懂(好想看动那个可以做一个ps了的说)
太多了,懒得看,而且我只要实现很简单的画一个框架
还有画俄罗斯方块,
用不着那么多东西,
希望各位救救,

小弟,真诚的希望

本来c里面有画图的头文件的说,
可是c++,好像找不到,说是要用api,mfc
api函数在vb里面有,这个我知道,可是在从vc++里怎么调用的说
mfc,vc++里有,这个我知道,可是到底怎么用这个绘图是一个问题的说

*还有,句柄是什么东东,字典查不到的说,

小弟要的是实现画图,就一个简单的图,希望不要讲的太开,
比方举个画长方形的例子也可以,
不过要的是注释,全全的,详细的说,不是说要多少字,至少说明这个是干什么的,参数的意义:)
还有从哪里来的,呵呵
拜托,拜托,非常的拜托

这个帖了,如果不满意不结帖,

真的是没有办法,
就这么多分了,
望各位见谅,
帮帮小弟,
感谢至极,

至此,敬礼!
...全文
650 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
hejunbin 2006-05-03
  • 打赏
  • 举报
回复
每天顶一下,对身体又好处:)
Rick_ang 2006-05-02
  • 打赏
  • 举报
回复
楼主看过mfc的话没讲到绘图类我就不信了
hejunbin 2006-05-02
  • 打赏
  • 举报
回复
只是可惜了,

在vc++里这个编译通过,执行的时候出错,少main函数

想知道要调用那些画图函数需要那些类,

该如何调用这些类,直接调出cdc就可以用那些画图函数了吗

看了windows程序设计,就介绍了画图函数,可是这个有什么用,更本就调不出来啊
hejunbin 2006-05-02
  • 打赏
  • 举报
回复
钱,是个好东西-我说

呵呵,这个跟主题不相符的说,

mfc是再windows里面编程的好东西,但是到unix,或者别的操作系统的话,就不那么好了
所以,认为还是思想比较重要,

至于学这些别人早已经编好的类的怎么操作是一件痛苦的事情,也是很无奈的事情,实在是没有办法的事情

只有这里哭几声了
hejunbin 2006-05-02
  • 打赏
  • 举报
回复
看过,
发火,是不对,这里道歉,

句柄,baidu是可以搜,解决问题的方法有很多,
我觉得在论坛里面问,会比较清楚一些,而且我的目的并不是“句柄”啊

mfc里面是有画图类,而且我还知道画图函数,
可是你可以告诉我这些是不可以直接用的,要生命设备上下文,cdc
怎么弄,是在.cpp里直接写吗,不是的吧,

有看过windoes程序设计,画图的话用的是win32程序要,正在慢慢的肯,很慢,因为有很多烦人的事情

希望这个帖子可以给,那些如同我一样想如门画图的,给个想到

这里对本人的,态度问题表示再一次的道歉,
hejunbin 2006-05-02
  • 打赏
  • 举报
回复
在vc++里面c的图形函数是不可以直接调用的说,

还有就是谢谢各位,

现去看看windows程序设计。。。
luocolor1 2006-05-02
  • 打赏
  • 举报
回复
mfc是个好东西,有人如是说.
zhouyinhui 2006-05-02
  • 打赏
  • 举报
回复
楼主,问就问嘛,不要发脾气三
人家提醒你看书,也是好意啊
我有点不明白了,楼主能上网发帖子,为什么就不能到BaiDu搜一下,BaiDu中关于“句柄”的网页一大把

路过
cnhgj 2006-05-01
  • 打赏
  • 举报
回复
简单的画图创建MFC单文档程序,命名为tttt
然后打开ttttView.cpp,编缉如下代码
void CttttView::OnDraw(CDC* pDC)
{
CttttDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
CRect m_Rect(300, 150, 450, 300); //矩形的大小
pDC->Rectangle(m_Rect); //调用CDC类成员Rectangle绘制矩形
}
YeTimmy 2006-05-01
  • 打赏
  • 举报
回复
本来c里面有画图的头文件的说,
可是c++,好像找不到,说是要用api,mfc
////////////////////
那你直接用调用c函数里面的好了,又没关系 :)
hejunbin 2006-05-01
  • 打赏
  • 举报
回复
先谢上面的各位了,

只是opengl现,没有时间,呵呵

句柄,资源的标识(可是那些前辈为什么要翻译的那么难懂,郁闷)

现在过过的看mfc

有看到画图的类,以后再细看,

这里可以再解释一下cdc吗,

这个好象是画图用类说,里面有好多方法

在mfc的教程中有六六看过,

可是,觉得这个是怎么调用的啊,

还有就是坐标的问题,不知道怎么定位

就我的目的是做一个俄罗斯方块,

要画这样的图形,具体想也不是画一个矩形这么简单的,毕竟这个是要动作的

怎么和我的程序接上,

小弟,实是第一次接触,

问的问题,如果有伤大雅,望见谅,
lonelyforest 2006-05-01
  • 打赏
  • 举报
回复
对啊, 直接写个DOS下的, 我有个DOS下的俄罗斯方块。
ruodeer 2006-05-01
  • 打赏
  • 举报
回复
句柄就是资源的标识
mfc 里面有dc(设备上下文),CDC封装了好多画图的操作
例如画条直线
dc.moveto(……);
dc.lineto(……);
如果你真的只需很简单的画图是很容易上手的

fiftymetre 2006-05-01
  • 打赏
  • 举报
回复
转一个上面的,简单的,SDK程序吧。
fiftymetre 2006-05-01
  • 打赏
  • 举报
回复
如果楼主的要求,只是实现了绘图这个功能,那么,你直接去看看windows程序设计的第五章吧。上面有讲的。高级点的可以用MFC opengl 这些东西的。


SINEWAVE.C
/*-------------------------------------------------------------------
SINEWAVE.C -- Sine Wave Using Polyline
(c) Charles Petzold, 1998
---------------------------------------------------------------------*/
#include <windows.h>
#include <math.h>

#define NUM 1000
#define TWOPI (2 * 3.14159)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("SineWave") ;
HWND hwnd ;
MSG msg ;
WNDCLASS wndclass ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc= WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;

if (!RegisterClass (&wndclass))
{
MessageBox ( NULL, TEXT ("Program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

hwnd = CreateWindow ( szAppName, TEXT ("Sine Wave Using Polyline"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static int cxClient, cyClient ;
HDC hdc ;
int i ;
PAINTSTRUCT ps ;
POINT apt [NUM] ;

switch (message)
{
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
return 0 ;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

MoveToEx (hdc, 0, cyClient / 2, NULL) ;
LineTo (hdc, cxClient, cyClient / 2) ;

for (i = 0 ; i < NUM ; i++)
{
apt[i].x = i * cxClient / NUM ;
apt[i].y = (int) (cyClient / 2 * (1 - sin (TWOPI * i / NUM))) ;
}

Polyline (hdc, apt, NUM) ;
return 0 ;

case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}


hejunbin 2006-05-01
  • 打赏
  • 举报
回复
且别以为我没有看书,
我看,看c++图形设计,看c++的mfc,
都是理论的多,
所以不是大懂,
所以,希望
请教一个入门的例子也好,,,
爱,
哭,
hejunbin 2006-05-01
  • 打赏
  • 举报
回复
知道了,句柄是指针的说,,,
没有看过编译原理,
三楼的那个,你看过了,可以解释一下吗,
就是搞不动,
总是某些人发个帖叫自己看书,
如果我知道的话,也不提问了,
我直接说看书看书!!!!!!!!!!!!!!!!!!!!!!!!!
要这个论坛干什么呢,,,
真的气急,
你要是懂,为什么不说,还要人家自己慢慢的肯厚厚的书,就为了一个句柄是什么?!!
我要是毁了编译,还在这里默默的求画图?!
人的力量是有限的,
希望得到的是帮助,
而不是冷冷的一句的看××书,
中国的精神-自私,
难道就永远的是世界第一的吗,
那可真的好好的感谢了的说

hejunbin 2006-05-01
  • 打赏
  • 举报
回复
顶!!!!!!!
fabio210 2006-05-01
  • 打赏
  • 举报
回复
找本Windows程序设计看看。
skywoody 2006-04-30
  • 打赏
  • 举报
回复
用openGL吧
随便找本书么,画3D的图都方便

句柄,厄,类似指针,指向内存中的一个object
我的理解,不知道具体的定义是什么样子的
加载更多回复(2)

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧