user-0 提问: 怎么样在c语言界面程序中改变光标的图标呀？

回复:
user: user-1
content: 没试过全屏化，用无边框窗体并设置最大化，是不是可行？

user: user-2
content: 仅供参考：#pragma comment(lib,"user32") #pragma comment(lib,"gdi32") #include <windows.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {     PAINTSTRUCT ps;     HDC hdc;     HFONT hfont,ohfont;     RECT r;     COLORREF oc;      switch(message) {     case WM_CLOSE://按Alt+F4退出         PostQuitMessage(0);         break;     case WM_PAINT:         BeginPaint(hWnd, &ps);         hdc = ps.hdc; // the device context to draw in         GetClientRect(hWnd, &r); // Obtain the window's client rectangle         hfont = CreateFont(200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "宋体");         ohfont=(HFONT)SelectObject(hdc,hfont);         oc=SetTextColor(hdc,0x00C080FF);         SetBkMode(hdc, TRANSPARENT);         TextOut(hdc,r.left+r.right/2-600, r.top+r.bottom/2-100,"最短画图程序",12);         SelectObject(hdc,ohfont);         SetTextColor(hdc,oc);         DeleteObject(hfont);         EndPaint(hWnd, &ps);         break;     default:         return DefWindowProc(hWnd, message, wParam, lParam);     }     return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {     MSG msg             = {0};     WNDCLASS wc         = {0};     HBRUSH hbrh;     hbrh=CreateSolidBrush(0x00000000);     wc.lpfnWndProc      = WndProc;     wc.hInstance        = hInstance;     wc.hbrBackground    = hbrh;     wc.lpszClassName    = "minwindowsapp";     wc.hCursor          = LoadCursor(NULL,IDC_ARROW);     if (0==RegisterClass(&wc)) return 1;      if (NULL==CreateWindow(wc.lpszClassName,                         "Minimal Windows Application",                         WS_POPUP|WS_VISIBLE,                         0,                         0,                         GetSystemMetrics(SM_CXSCREEN),                         GetSystemMetrics(SM_CYSCREEN),                         0,                         0,                         hInstance,                         NULL))         return 2;      while( GetMessage( &msg, NULL, 0, 0 ) > 0 ) {         DispatchMessage( &msg );     }     DeleteObject(hbrh);     return 0; }

user: user-0
content: 引用 7 楼 hzy_76 的回复:我家里是新版本的，不知道是否一致，回家了有空帮你看看。 哈哈，我找到方法了，成功替换了，对了，不知道有没有办法让我用vc++写的界面化c程序全屏化呀？

user: user-1
content: 我家里是新版本的，不知道是否一致，回家了有空帮你看看。

user: user-3
content: wc.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE(CUR));把里面的CUR改成你想要的光标的ID不就好了嘛。系统里面自带的有IDC_CROSS, IDC_ARROW. IDC_WAIT等等。也可以LoadIcon图片来作为光标，具体的可以到网上搜相关呀。

user: user-0
content: 引用 4 楼 hzy_76 的回复:你说的好复杂，还要学习如何分解编译步骤吗？这个还真没搞过，一般改完工程，菜单里点一下build就完成了。 其实我就是不明白那个教程那里最后是怎么把生成的res资源文件和obj文件连接生成exe执行程序的，没事，大神你就帮我看看怎么用VC++6.0改变光标的图标就好~~~

user: user-1
content: 你说的好复杂，还要学习如何分解编译步骤吗？这个还真没搞过，一般改完工程，菜单里点一下build就完成了。

user: user-0
content: 引用 1 楼 hzy_76 的回复:Visual C++还是古老的纯C？前者可以在工程中更改，后者应该是不太可行。 现在手上没有Visual C++，如果你需要具体方式，晚上回家可以帮你找一下。 这是教程里说的，我弄到连接obj和res那就弄不下去了，显示'linke' 不是内部或外部命令，也不是可运行的程序 或批处理文件。 今天我们只是修改鼠标的指针，所以用到的资源，只有鼠标的光标资源而已。资源的源文件是以rc为扩展名的脚本文件（仍然是C语言格式的，很简单），有资源编译器Rc.exe编译成以res为扩展名的二进制资源文件，最后用连接器，把res文件和obj文件连接到一起就成了我们的程序exe文件了，现在知道了程序编译后要连接了吧。光标的图片格式有两中cur和ani的。这个文件我在魔域的图片库里面找到了就复制到，当前项目目录下。下面来定义下资源文件myOwnCursor.rc //myOwnCursor.rc written by xhk 2009.3.1 #include	<resource.h>  //资源文件要用到的图文件 #define	CUR	0x1000		//定义资源的ID，为整型id CUR	CURSOR 	"myOwnCursor.ani"	//用到的光标图案 写完后，在命令提示符下进入目录，然后用rc.exe编译，输入rc myOwnCursor.rc命令，回车   我们查看下项目目录下多了个myOwnCursor.RES的文件，就是编译生成的二进制资源件。   接下来就该编写代码了，来应用这个资源文件，建立myOwnCursor.c文件，其实代码和上节所写代码很相似的，只是稍微加以修改而已。 #include <windows.h> #define CUR 0x1000	//预定义光标的id //回调函数 LRESULT WINAPI WinProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {     switch(Msg)//处理消息过程，什么是消息，下节再讲     {     case WM_DESTROY://响应鼠标单击关闭按钮事件         PostQuitMessage(0);//退出消息队列，至于什么是消息队列，下节说         return 0;//退出函数     }     return DefWindowProc(hWnd,Msg,wParam,lParam); }  //主函数 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd) {     char *cName = "myWindow";     WNDCLASSEX wc;     HWND hWnd;     MSG Msg;      wc.cbClsExtra = 0;     wc.cbWndExtra = 0;     wc.cbSize = sizeof(WNDCLASSEX);     wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景，这里大家设置为NULL看看，会很有趣的     wc.hCursor = LoadCursor(hInstance,MAKEINTRESOURCE(CUR));//这里改了，来载入光标资源     wc.hIcon = NULL;//不设置     wc.hIconSm = NULL;//不设置     wc.hInstance = hInstance;//当前程序的句柄，hInstance是有系统给传递的     wc.lpfnWndProc = WinProc;//窗口处理过程的回调函数。     wc.lpszClassName =(LPSTR)cName;//窗口类的名字。     wc.lpszMenuName = NULL;//目录名，不设置     wc.style = CS_HREDRAW | CS_VREDRAW;       RegisterClassEx(&wc);//在系统中注册      hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,cName,"我的窗口我喜欢",WS_OVERLAPPEDWINDOW,         200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口，窗口标题为"我的窗口我喜欢"     if(hWnd == NULL)     {//容错处理         MessageBox(NULL,"There's an Error","Error Title",MB_ICONEXCLAMATION|MB_OK);         return 0;     }     ShowWindow(hWnd,nShowCmd);//显示窗口     UpdateWindow(hWnd);      //下面是对消息的循环处理，大家先不必管这些，下节课我会细说的 	while(GetMessage(&Msg,NULL,0,0))     {         TranslateMessage(&Msg);//翻译消息         DispatchMessage(&Msg);//分派消息     }     return Msg.message; } 用vc编译生成myOwnCursor.obj,把myOwnCursor.obj和myOwnCursor.res放到同一个文件夹下，然后在命令行下进入它们所在的目录 ，输入命令：linke kernel32.lib user32.lib gdi32.lib /subsystem:windows myOwnCursor.obj myOwnCursor.res把两个文件连接成myOwnCursor.exe.

user: user-0
content: 引用 1 楼 hzy_76 的回复:Visual C++还是古老的纯C？前者可以在工程中更改，后者应该是不太可行。 现在手上没有Visual C++，如果你需要具体方式，晚上回家可以帮你找一下。 嗯嗯，是VC++6.0,谢谢啦，课程设计需要，网上查了愣是没弄懂，大神帮我看看吧~~~

user: user-1
content: Visual C++还是古老的纯C？前者可以在工程中更改，后者应该是不太可行。 现在手上没有Visual C++，如果你需要具体方式，晚上回家可以帮你找一下。