问一个tc的问题与一个vc的问题,加一个笨问题 *^_^*(200分)

  • 主题发起人 zengting
  • 开始时间
Z

zengting

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
(1)今天看一本c++图形方面的书,有一个程序不能通过编译,但书上源程序就是这样,没办法,请大家帮帮忙,看一下是怎么回事/
#include<graphics.h>
#include<conio.h>
void main(void)
{
void DRAW6(int X,int Y);
int driver=DETECT,mode;
int NUM,NUM1;
initgraph(&amp;driver,&amp;mode,"");
for(NUM=0;NUM<6;NUM++)
for(NUM1=0;NUM1<3;NUM1++)
DRAW6(NUM*100+50,NUM1*150);
getch();
closegraph();
}
void DRAW6(int X,int Y)
{
int DATA[]={X,Y,X-50,Y+50,X-50,Y+100,X,Y+150,X+50,Y+100,X+50,Y+50,X,Y};//问题出在这里
setcolor(YELLOW);
setfillstyle(3,YELLOW;
fillpoly(6,DATA);
}
(2)在vc中没有graphics.h那怎么在vc里面显示图形?是调用api函数吗?怎么调用法?
(3)direct X不只是用来支持游戏的系统补丁吗?为什么很多人说可以开发游戏?怎么开发法?
谢谢啦!!!!!!
 
对于第三个问题,我已经找到答案了.
 
你是用VC编译时出错是不是?
我用tc3试了一下,没有问题。只是
setfillstyle(3,YELLOW;
一句掉了")"
 
这个只能在TC下用,VC和C++B都不能,TC2应该可能直接通过,TC3下有一个选项(graphics)
要选上,并且“BGI”路径正确,
 
正确答案应该是:
数组初始化应当是常量声明,不可以是变量声明。
修改后应当是:
#include<graphics.h>
#include<conio.h>
void main(void)
{
void DRAW6(int X,int Y);
int driver=DETECT,mode;
int NUM,NUM1;
initgraph(&amp;driver,&amp;mode,".//");
for(NUM=0;NUM<6;NUM++)
for(NUM1=0;NUM1<3;NUM1++)
DRAW6(NUM*100+50,NUM1*150);
getch();
closegraph();
}
void DRAW6(int X,int Y)
{
int DATA[]={0,0,-50,50,-50,100,0,150,50,100,50,50,0,0};
int i;
for(i=0;i<14;i++)
{
if(i%2==0) DATA=DATA+X;
else
DATA=DATA+Y;
}
setcolor(YELLOW);
setfillstyle(3,YELLOW);
fillpoly(6,DATA);
}
另外VC中需要通过加载位图资源来达到调用bmp位图的目的。
bmp文件可以用画图板做,也可以用PhotoShop处理。
比如在WinMain函数中,应当写入:
HBITMAP hBm; //位图句柄
hBm=LoadBitmap(hInstance,"picture");//加载位图
GetObject( hBm, sizeof( BITMAP), (LPVOID)&amp;bm) //获取位图尺寸
在WndProc函数中写入:
LRESULT CALLBACK WndProc( HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{ PAINTSTRUCT ps;
switch(message){
case WM_CREATE:
//获取设备环境句柄
hdc=GetDC(hwnd);
//获取内存设备环境句柄
hdcmem=CreateCompatibleDC(hdc);
//释放设备环境句柄
ReleaseDC(hwnd,hdc);
case WM_PAINT:
hdc=begin
Paint(hwnd,&amp;ps);
//将位图选入内存设备环境
SelectObject(hdcmem,hBm);

//调用函数BitBlt将内存设备环境中的位图拷贝到设备环境中
BitBlt(hdc,180,80,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);
//释放设备环境句柄
EndPaint(hwnd,&amp;ps);
break;
case WM_DESTROY:
//释放位图
DeleteObject(hBm);
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
 
Visual C++技术内幕配套源码?
能不能winrar分卷压缩发给我??
wukw@263.net.cn
50M的信箱不怕。
我再出100分购买,谢谢!!!
 
(2)在vc中没有graphics.h那怎么在vc里面显示图形?是调用api函数吗?怎么调用法?
有点晕,不知道你再说什么。
CDC类,可以轻易画图形的呀!您老没有用过VC?
 
源码已发,请查收.
 
to zengting
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1242256
嘿嘿,多谢了。快去领分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
425
import
I
I
回复
0
查看
713
import
I
I
回复
0
查看
737
import
I
顶部