windows编程入门.我建了窗口画了个正方形,左右移动也弄了。想他碰到墙不能动。应该怎么加判断,求思路

作者&投稿:释奋 (若有异议请与网页底部的电邮联系)
用编程语言实现一个正方形360°旋转? 下面是我写的一个画正方形的代码! 我想要的是算法。要求完整代码。~

WINDOWS图像编程

--------------------------------------------------------------------------------

图形设备接口(GDI,Graphics Device Interface)的主要目标之一是支持在输出设备(如视频显示器、打印机和绘图仪)上的与设备无关的图形。 GDI通过将应用程序与不同输出设备特性相隔离,使Windows应用程序能够毫无问题地在Windows支持的任何图形输出设备上运行。
Windows中的图形基本上是由从GDI.EXE模块中输出的函数处理的(尽管一些绘制函数实际上具有USER.EXE的入口点),GDI.EXE模块调用在不同驱动程序文件中的例程,其中有一个.DRV驱动程序文件用于控制显示屏幕,并且可能有一个或多个其他的.DRV驱动程序文件用来控制打印机或绘图仪。
Windows GDI使用两种坐标系统。使用虚拟坐标系统可以使程序不依赖于具体的硬件,使用设备坐标系统可以使程序和硬件紧密相联。
GDI含有在Windows应用程序内部执行、且与设备无关的图形操作函数,这些函数可产生各种各样的线、正文和位图,它们可以输出到许多不同的输出设备上。GDI允许一个应用程序产生笔、刷子、字体和位图,以供特定的输出操作使用。下面列出GDI中几组比较常用的函数:
·设备上下文函数
·椭圆和多边形函数
·绘图工具函数
·位图函数
·绘图属性函数
·正文函救
·映射函数。
·坐标函数
·元文件(metafile)函数
·区域函数
·裁剪(clipping)函数·
窗口应用程序输出图形的操作步骤如下:
①取得指定窗口的当前显示设备上下丈,显示设备上下文实际上是一个数据结构,它包括该窗口的参数及各种图形、文字属性的现行设定值,它们对以后的图形、文字输 出命令起控制作用。
②选择用户坐标系及映射方式。
③设定用户坐标系中的观察窗口和设备坐标系中的显示视区。
④输出图形、文字和图象。
⑤释放所使用的显示设备上下文。

当想要在图形输出设备(例如屏幕或打印机)上绘制图形时,必须首先获得设备上下文的句柄。先给出这个句柄,Windows才允许程序使用设备,在GDI函数中将句柄作为一个参数传入,向Windows标明需要使用的设备。
设备上下文中包含许多属性,当GDI在不同的设备上工作时都要用到这些属性。使用这些属性可使GDI只关心起始和终止坐标的大小,而不必关心有关对象的其他属性,如颜色、背景等等,因为这些都是设备上下文的一部分。当需要修改这些属性时,只需调用一个修改设备上下文中属性的参数,以后的程序中都使用修改后的设备上下文属性。设备上下文是连接Windows应用程序、设备驱动程序以及输出设备的纽带。
获取设备上下文句柄有多种方法。最一般的方法是当处理一条消息时获得了设备上下文、并在退出窗口之前释放它。一般的处理方法如下:
在处理WM_PAINT消息时
case WM_PAINT:
hdc=BeginPaint(hwnd,&ps)
EndPaint (hwnd,&ps);
其数据结构为:
HDC hWnd;
PAINTSTRUCT ps;
而在windows.h中定义了PAINTSTRUCT的数据结构。
type struct tagPAINTSTRUCT {
HDC hdC;
BOOL fErase;
RECT rcPaint;
BOOL fRestore;
BOOL flncUpdate;
BYTE rgbReserved[16];
}PAINTSTRUCT;
其中,hdc用于标识显式上下文,fErase指出背景是否重画,rcPaint是涂色矩形,其余的域均为保留。这里的hdc是BeginPaint返回的设备上下文句柄,有了从DeginPaint获取的设备上下文句柄,就可以也只能在ps指出的rcPaint的矩形内绘图,EndPaint调用使这一区域有效。
第二种方法如下所示,使用这种方法获取和释放设备上下文可以在整个用户区内画图,图形在整个用户区域内都有效:
hdC=GetDc (hwnd );
…画图操作…
ReleaseDC (hwnd , hdc );
使用下面第三种方法获取和释放设备上下文,可以在整个窗口内画图,图形在整个窗口内有效:
hdC=GetWindowDc(hwnd);
…画图操作…
ReleaseDc(hwnd,hdc);
使用下面第四种方法获取和释放设备上下文,可以在整个显示器区域内画图,图形在整个显示器区域内部有效:
hdc=CreateDC (lpszDriver ,lpszDevice ,lpszOutput , lpData);
…画图操作…
ReleaseDC(hdc);
其中lpszDriver指向设备驱动程序的DOS文件名(不带扩展名),lpszDevice指向专用设备名(例如Epson Fx-80),lpszOutput指向物理输出介质(文件或输出端口)的DOS文件名或设备名,lpData指向含有设备驱动程序的设备专用的初始化数据的DEVMODE数据结构。例如:
hdc=CreateDC("DISPLAY",NULL,NULL,NULL);
使用屏幕画图,而:
hdc= CreateDC ("IBMGRX","IBM Graphics","LPT1",NULL );
在打印机上输出图形,这里的lpData置为默认值,可以在WIN.INI中找到初始化值。
如果不需要获取设备上下文,即不需要在设备上下文中操作,只需了解有关设备上下文的信息,可以用如下语句:
hdcInfo = CreateDC (lpszDriver, lpszDevice,lpszOutput, lpData );
……
DeteteDC (hdcInfo);
另外,还可以使用设备上下文来对位图的内存进行控制,如下所示:
hdcMem = CreateCompatibleDC (hdc)
OeleteDc(hdcMem );
一个元文件是以二进制形式编码的GDI调用集合,可通过获取一个元文件设备上下文来建立一个文件:
hdcMeta=CreateMetaFile(lpszFilename);
……
hmf=CloseMetaFile(hdCMeta);
在元文件设备上下文有效期间,使用hdcMeta所进行的任何GDI调用都成为元文件的一部分,当调用CloseMetaFile时,设备上下文句柄变化无效,函数返回元文件(hmf)的句柄。
一个设备上下文通常涉及物理设备,如视频显示器、打印机等,所以需要获取有关该设备的信息,如显示器大小和彩色能力等。可以通过调用GetDeviceCaps函数来获取这样的信息:
nValue=GetDeviceCaps (hdc,nIndex);
这里的hdc标识设备上下文,nIndex确定返回值,它可以是window.h中所定义的28个标识符中的一个,例如nIndex=DRIVEVERSION,则该函数返回的是版本号。

真正影响在用户区域上绘制过程的设备上下文属性是“映射方式”,与映射方式属性密切相关的还有如下四个设备上下义属性:窗口原点、视窗原点、窗口范围和视窗范围。
Windows定义了八种映射方式,即:

这里的TWIP指的是1/1440英寸,in.代表英寸。
可以调用函数setMapMode(hdc,MapMode)来设置这八种映射方式中的一种。hdc用来标识设备上下文,nMapMode可以取MM_TEXT、MM_LOMETRIC、MM_HIMETRIC等八个值中的一个。在设置了映射方式之后,到下一次设置映射方式之前,Windows一直使用这种映射方式。如果想要获取当前的映射方式,可用:
nMapMode= GetMapMode (hdc)
在设置了映射方式之后,就规定了逻辑单位的大小和增量的方式,在GDI画图函数中,可以不必考虑这些内容而直接使用逻辑数字,如:
SetMapMode(hdc ,MM_TEXT);
TextOut(hdc,8 ,16,szBuffer ,nLength)
即正文从用户区域左起第八个象素,顶边起第16个象素的位置开始写操作。不管映射方式如何,Windows函数中所有坐标规定为-32768 到 32767之间的带符号短整救。
注意映射方式只是一个设备上下文属性,因此映射方式唯一起作用的是将映射方式作为设备上下文句柄属性,而将该句柄当作参数的GDI函数,因此象GetSystemMetrics这样的非GDI函数,将继续以设备单位(象素值)返回尺寸值。

用GDI的SetPixel函数可以绘制一特定颜色的象素:
rgbActualColor =SetPixel (hdc,x,y,rgbColor);
这里hdc标识设备上下文,x ,y表示点坐标,rgbColor为一无符号的长整数,其结构为:
COLORREF rgbColor;
其中低位字节为红基色的相对亮度值,第二个字节包含绿基色的相对亮度值,第三个字节包含蓝基色的相对亮度值,高位字节必须为零。可以使用RGB函数来获取rgbColor。
rgbColor =RGB(byRed ,byGreen,byBlue);
这里的byRed、byGreen、byBlue取值范围为0~255,分别代表红色、绿色、蓝色的亮度。给出正确的参数之后,SetPixel返回的是调色板中最靠近所需彩色的颜色。还可以使用如下方法来取得一个特定象素的颜色:
rgbCotor= GetPixel(hdc,x,y);

画线函数主要有三种, LineTo、Polyline 和 Arc。还有五个设备上下文属性会影响这些函数画出的线的外观:笔的当前位置(仅对LineTo有影响)、笔、背景方式(对非实心笔有影响)、背景颜色(对 OPAQUE背景方式)以及绘制方式。
在这些设备上下文的属性中,笔的当前位置影响画线的起点,笔影响线的粗细等形状,背景方式影响非实心笔画出的线的模板图形,背景颜色影响线模板背景色,绘制方式影响实心线、虚线等线属性。
以下是典型的画线操作步骤:
MoveTo(hdc,xStart,yStart);
LineTo(hdc ,xEnd ,yEnd);
上面两句画出一条从(xStart,yStart)到(xEnd,yEnd)的直线。
可以使用语句:
dwPoint = GetCurrentPosition (hdc);
获得笔的当前位置。这里,dwPoint返回值是一个无符号长整数(或双倍长字),其中低位字含有X坐标,高位字含有Y坐标。
可以使用MAKEPOINT函数将dwPoint转换为POINT结构;
point = MAKEPOINT (dwPoint);
point的类型为POINT:
typedef struct togPOINT {kk1}
int x;
int y;
}POINT;
Polyline用于绘制折线,例:
Polyline(hdc,&pt,5)
将数组pt中的5个点之间用线段相连。
Arc用于画椭圆的周边:
Arc (hdc,xLeft,yTop,xRight,yBottom,xStart,yStart,XEnd,yEnd );
画出的椭圆以左上角为(xLeft,yTop),右下角为(xRight,yBottom)的矩形为界,圆弧开始于椭圆和(xStart,yStart)与椭圆中心的连线的交点处,沿着椭圆周边的过时针方向绘制,并终止于椭圆和(xEnd,yEnd)与椭圆中小的连线的交点处。
当调用LineTo、Polyline和Arc时,Windows使用当前在设备上下文中选择的笔来画线,笔决定了线的颜色、密度和型式,而线型可以是实线、点线或短划(虚)线,缺省设备上下文中的笔叫做BLACK_PEN,不管映射方式如何选支笔以一个象素的宽度画黑色的实线, BLACK_PEN是Windows提供的三支“备用笔”之一,其他两支是WHITE_PEN和NULL_PEN,NULL_PEN是一支什么都不画的空笔,当然用户也可以自己建立定制的笔。
可以通过一个句柄来引用所需的笔:
HPEN hPen;
hPen =GetStockObject(WHITE_PEN);
SelectObjeCt (hdc ,hPen) ;
SelectObject (hdc , hBrush ) ;
将逻辑刷送入设备上下文中。如果使用结束,可以用:
DeletObject (hBrush ) ;
删除一把已建立的刷子,如果在程序中需要获取有关于刷子的信息,则可以调用:
3.像素格式结构
每个OpenGL显示设备都支持一种指定的像素格式。一般用一个名为PIXELFORMATDESCRIPTOR的结构来表示某个特殊的像素格式,这个结构包含26个属性信息。Win32定义PIXELFORMATDESCRIPTOR如下所示:
typedef struct tagPIXELFORMATDESCRIPTOR
{ kk1}
// pfd
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR;

4.初始化PIXELFORMATDESCRIPTOR结构
PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参考有关资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要说明相关变量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:
PIXELFORMATDESCRIPTOR pfd = { kk1}
sizeof(PIXELFORMATDESCRIPTOR), . //size of this pfd 1
PFD_DRAW_TO_WINDOW| // support window
PFD_SUPPORT_OPENGL| // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0,0,0,0,0,0, // color bits ignored
0, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buff
0,0,0,0, // accum bits ignored
32, // 32-bit z-buffer
0, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0,0,0 // layer masks ignored
};
在这个结构里,前两个变量的含义十分明显。第三个变量dwFlags的值是
PFD_DRAW_TO_WINDOW |PFD_SUPPORT_OPENGL ,
表明应用程序使用OpenGL函数来绘制窗口
第四个:
PFD_DOUBLEBUFFER,
表明当前采用RGBA颜色模式,第五个采用24位真彩色,既1.67千万种颜色,如果是256色系统则自动实现颜色抖动;因为没有使用alpha缓存和累计缓存,所以从变量cAlphaBits到cAccumAlphaBits都设置为0;深度缓存设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置为0,在Windows 95下不支持辅助缓存;Windows 95下针对OpenGL变量ilayerType只能设置为PFD_MAIN_PLANE,但在其它平台也许支持PFD_MAIN_PLANE或PFD_MAIN_UNDERLAYPLANE;接下来bReserved变量只能设为0,而最后三个变量Windows 95都不支持,故全设置为0

以前小学微机课学的一个小乌龟画图的编程叫LOGO语言。
LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过“绘图”的方式来学习编程,对初学者特别是儿童进行寓教于乐的教学方式。 LOGO语言创始于1968年,是美国国家科学基金会所资助的一项专案研究,在麻省理工大学(MIT)的人工智能研究室完成。
LOGO源自希腊文,原意即为思想,是由一名叫西摩尔·帕伯特的心理学家在从事儿童学习的研究中,发现一些与他的想法相反的教学方法,并在一个假日中出外散步时,偶然间看到一个像海龟的机械装置触发灵感,于是利用他广博的知识及聪明的才智而最终完成了LOGO语言的设计。

扩展资料:
LOGO语言之所以是儿童学习计算机编程最好的一种语言,就因为它是针对儿童而制作的编程语言,能使儿童在认知与技能上得到较大的发展。LOGO语言具有较强的针对性,因为对于儿童来说,“画画”比“文字处理”更具有活力,充分发挥自己的想象进行创作,而文字处理却比较枯燥,不适合儿童。
LOGO则主要用于“图画”制作,并且采用了“海龟绘图”的方式,适合儿童的特点,能充分引起他们的兴趣和学习该门语言的积极性,达到寓教于乐的目的。
在LOGO语言中,它的作图方式与现在所用的作图软件不一样,主要区别就在于LOGO语言的基本作图的方法可以不采用坐标方式,而是通过向前,后退、向左转、向右转、回家等儿童易于理解的语言和命令,这非常适合儿童的知识水平,使这些还未接触坐标为何物的儿童更容易上手。
在用LOGO语言作图时,需要学习者对一些常见的几何特性进行理解,了解常用的距离、角度和度数的概念。
参考资料:
LOGO语言-百度百科

思路很简单,就是当正方形的最右边的坐标即将大于或等余客户区的最右边的坐标时,g_x不再加100。所以要先处理WM_SIZE消息使先获得客户区的大小。代码如下:
首先最上方声明static int cxClient, cyClient ;
其次:处理WM_SIZE消息。
case WM_SIZE:
cxClient = LOWORD (lParam) ;
cyClient = HIWORD (lParam) ;
最后就是处理你的移动消息了,这里给你个处理向右移动的例子吧!
修改后代码:
if(g_x+200<=cxClient)
g_x+=100 ;
InvalidateRect(hwnd,NULL,TRUE);
为什么加200呢?貌似你的g_x是最左边的坐标所以先加个一百。后面那个100就是再加就超过客户区的的意思了!


二十行代码带你飞速入门Windows编程
在Windows编程中,窗口程序的入口函数是`WinMain`,与常见的`main`函数有所不同。`WinMain`函数在调用约定上具有特定的规则,即采用`WINAPI`函数调用约定,从右向左入栈,并由调用者负责平衡栈。`WINAPI`实际上等价于`__stdcall`调用方式。对于`main`函数,它拥有一个参数`HINSTANCE`,代表应用程序实例...

windows编程输入
windowsAPI编程就是c语言编程,API是API函数的意思,也就是库函数,只是一系列在头文件中已经定义好的c语言函数而已,那么windowsAPI函数就是用一般的printf,scanf之类的语句输入数据啊 不过如果你想说的是win32编程的话,那就是像你现在用的游览器,或者qq这样的windows应用程序,那么就是获取相关控件的...

Windows核心编程(二)进程
在Windows中创建进程的流程与Linux有所不同,主要使用`CreateProcess`函数。进程创建后,系统会分配内核对象并维护引用计数。每个进程至少包含一个线程,即主线程,其最终调用`WinMain`、`wWinMain`、`main`或`wmain`函数,如果运行无误,`CreateProcess`将返回`TRUE`。具体参数的使用请参阅`Windows核心编...

如何学习 Windows 编程?
四、如何学习 Windows 编程 在了解 Windows 软件的特定和编程习惯后,你需要逐个学习 Windows 的各个知识点,而不是孤零零地去学习单个的 API 函数。我曾在知乎上开过一个关于 Windows 编程从入门到进阶的讲座,有兴趣的读者可以戳这里。关于 Windows 的图书,我推荐两本互补的书籍:《Windows 程序设计(...

如何在Windows环境下编程C语言??
CodeChef Jdoodle 使用在线编程环境的步骤通常是:在网站上注册一个帐户。创建一个新的 "项目"。选择 C 语言作为您的项目的编程语言。在编辑器中编写您的 C 代码。使用网站提供的编译器编译代码。运行您的程序并查看输出。您也可以使用解释器来运行 C 代码。例如,您可以使用 CINT 解释器将 C 代码保存...

为什么Windows编程中的程序入口是WinMain()而不是C中的main()呢?_百度...
操作系统本身也是一个程序,你可以认为它也是一个main()而你写的程序只是被操作系统调用的一个任务(通过任务调用函数,创建一个新的进程后,把新进程入口指向你的WINMAIN())。是不是main()没有关系,只要编译器知道它是入口就好。WinMain()在你自己编写的程序外面再了一层,可以给你的程序main()传递...

简述Windows编程的特点
一个Windows应用程序具有以下的特性: 事件驱动程序设计、消息循环与输入、图形输出、用户界面对象、资源共享、动态链接库等等。1、事件驱动的程序设计 传统的MS-DOS程序主要采用顺序的、关联的、过程驱动的程序设计方法。一个程序是一系列预先定义好的操作序列的组合,它具有一定的开头、中间过程和结束。程序...

C#的Windows编程中多语言的实现
实现多语言的方法是通过配置文件实现 通过从配置文件中读取资源 然后在显示窗口的时候 即Load()方法中 动态显示相应的选择语言 下面是在C#的Windows编程中实现多语言的步骤 第一步 设置默认语言和修改默认语言 我们定义了一个XML文件来存放默认语言 文件名为LanguageDefine XML LanguageDefine xm...

有宏-t 就属于windows编程吗?windows编程的入口函数也可以是 -tmain...
Windows GUI 程序入口有 WinMain 和 wWinMain,它被定义为宏 _tWinMain。同样地,上面提到的 SetWindowText,当定义 UNICODE 时,SetWindowText 被定义为 SetWindowTextW,未定义时代表 SetWindowTextA。在 C 语言中,wchar_t 类型的宽字符在声明时,字符或字符串串前需要加 L 以便编译器知道这是宽字符...

Windows编程循序渐进内容简介
如果你正在寻找一本适合Windows编程初学者的教材,那么这本书绝对值得一看。它特别强调以技术成长的路径为引导,逐步深入地教授Windows系统程序设计和应用软件开发。逐步学习的结构确保了知识的连贯性和实用性,无论是基本的开发技能,还是综合的开发技术和系统程序设计技术,它都包含了全面且详尽的讲解。这本...

松滋市19349865250: 如何编写windows窗口程序 -
延戴氟罗: 控制台编程和窗口编程几乎就是两个不同的概念.方法和思想差别很大.控制台的程序一般用来学习语言,比如c或者c++,练习基本语法和结构这些.window编程一般是在微软提供的API基础上进行编程,不需要你去写过于底层的东西,大多都是调用已有的接口来做的.入门的话,建议可以看看孙鑫写window编程视频教程,来得稍微快些,要是先就看书的话有些不适应,毕竟从控制台程序到窗口还是有一定距离的,先看看视频,理解消息驱动的思想之后,再看些书.最主要的还是多练习,否则一切都是白费的.

松滋市19349865250: 应该怎么学window是编程 觉得好枯燥 我有一定的c语言基础 -
延戴氟罗: 新手的话就从先学习Vusual c++开始,一些新手入门的vc书籍很多.大多数是介绍window编程的基本内容,像如何建一个窗口,控件.这些书都是用MFC来建的,因为它将窗口的构建的函数都放到了一些类中,不用自己编写,只要按它的步骤来操作就行了,适当的可以自己添加一些函数,很简单.你只掌握c还是不行的,还要学习c++才能看vc的.当你在掌握了这些入门书籍才能更深入的学习windows.MFC的一些类用起来很方便但是效率很低,所以当你掌握很好的时候就可以深入学习windows编程了,用一些API函数来编写,这个不像前面所讲的那么简单了,需要很深的底蕴.急不得的,从入门开始吧,厚积薄发.以上是我的观点希望能帮到你.

松滋市19349865250: 怎样用VC++6.0windows编程 创建窗口 详细步骤 -
延戴氟罗: 文件——C++/C选项 ——起名字要“.C ”的或者是“.cpp”的——定义存储路径 ——确定——即可

松滋市19349865250: windows编程怎么将由对话框构建的控件窗口创建到主窗口上?如图,我用对话框建了一个控件区,怎样才能将它创建到主窗口并且不能移动?
延戴氟罗: 如果是拖出来的窗口,把系统菜单和标题栏去掉就好了,这样就没有可移动边框了,窗口风格是WS_CAPTION,WS_SYSTEMMENU

松滋市19349865250: visual C++ 创建一个窗口却无法显示窗口的原因是什么? -
延戴氟罗: 因为你没有让它显示, 在WINDOWS机制中,首先创建一个进程, 然后在进程中执行命令, 命令可以是创建一个窗口, 也可以是其他.创建一个窗口首先需要定义一个窗口类,然后初始化相关事件,然后显示.程序运行不运行和窗口是否显示没有任何关系. 程序运行时可以显示窗口也可以不显示.建议你去买一本《WINDOWS程序设计》(微软出版社出的),该书是WINDOWS编程的圣经,如果你要用VC写WINDOWS程序,此书是必看的.该书用新手也能看懂的语言介绍了WINDOWS的整体框架和VC编程时涉及的基础知识.你应该好好读读这本书.

松滋市19349865250: windows 编程用vc 6.0怎样建立一个能够开始写windows 编程代码的窗口开始书写代码
延戴氟罗: 1. 打开VC6.0 2. 打开“文件”菜单,选择“新建”,弹出一个新建窗口. 3. 在左边的“工程”面板里面选择“Win32 Application”,在右边的“工程”编辑框里写上工程名,假设是“Test“. 4.点击“确定”.在弹出的窗口中选择“空项...

松滋市19349865250: WINDOWS API 怎么学 我只有c的基础 -
延戴氟罗: 只有c语言基础是不够的,因为c语言没有引入类和对象的概念,而这一概念是window编程的最基本的思想,你不学习c++或者Java的话,不可能理解封装、继承、多态这些,没有这些,就没有办法理解API和API的调用,至少你不能理解得很深刻,编程的话不能建立空中楼阁!必学c++!学习了c++之后,建议看看孙鑫的window编程入门视频,理解消息驱动,之后是看书,不断实践,离开了实际的写程序,一切都白费了!学习c++开始的时候用控制台编程,建立console工程,学习基本语法和结构,理解类和对象的思想,之后熟练c++了,那么你就能开始看窗口编程视频了,然后看书,练习,缺一不可.编程的话,需要耐心和细致,要投入,要多练习.祝你好运!

松滋市19349865250: windows编程中如何建一个子窗口并显示它啊.下面这样没有显示.求大神帮忙.. -
延戴氟罗: 在WndProc中WM_CREATE中的CreateWindow的下面一行你为什么要ShowWindow和UpdateWindow呢?CreateWindow中已经指定了WS_VISIBLE了,况且iCmdShow在WndProc中作为局部变量未经初始化,结果当然不可控了.把那个ShowWindow和UpdateWindow去了就行了.看到你的“This program requires windows NT!”相信你肯定是看的Windows程序设计吧,可以再认真看看子窗口控件部分

松滋市19349865250: 一个很简单的关于Windows编程的问题:如何用Visual Stidio (C#)实现一个窗口exe程序,并完成数字的输入.
延戴氟罗: c#做窗口不是很简单吗?画就行了.双击按钮就进入按钮响应实践. 你的后台程序是个独立的exe吗,那就需要跨进程通信.你可以研究一下共享内存,msmq或剪贴板的用法,都可以实现

松滋市19349865250: C++写窗体程序 -
延戴氟罗: VB是基于快速开发环境,直接针对一个现给的窗体进行编程操作.实际上想要创建出一个具有图形界面的窗体是很麻烦的,需要使用Windows API函数构造窗口类,注册窗口,显示、更新窗口,创建消息映射,接收消息循环等等很多步骤. C+...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网