OK, you need to load or draw a cursor in your resource editor....then you load the cursor with the LoadCursor() function. This takes 2 params....first the handle to your HINSTANCE (passed to WinMain) and also a string identifying the cursor name (VC++ and some other compilers store this as an int, so you use the MAKEINTRESOURCE macro to convert it)....then you assign the returned handle to the hCursor member of your WNDCLASSEX structure....Now any window you create from this class will use the cursor you specified as its default cursor.....
Code:
#include <windows.h>
#include <tchar.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND hWnd,
UINT msg,
WPARAM wParam,
LPARAM lParam)
{
switch(msg){
case WM_CLOSE:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInst,
HINSTANCE,LPSTR,int nShow){
TCHAR szWindowName[]= _T("Bitmap");
WNDCLASSEX wc= {0};
HWND hWnd;
MSG msg;
HCURSOR hCur = LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1));
if(hCur == NULL)return EXIT_FAILURE;
wc.cbSize= sizeof(WNDCLASSEX);
wc.style= CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
wc.lpfnWndProc= WndProc;
wc.hInstance= hInst;
wc.hIcon= LoadIcon(NULL, IDI_WINLOGO);
wc.hCursor= hCur;
wc.lpszClassName= szWindowName;
wc.hbrBackground= CreateSolidBrush(RGB(255, 255, 255));
wc.hIconSm= LoadIcon(NULL, IDI_WINLOGO);
if(!RegisterClassEx(&wc))return EXIT_FAILURE;
hWnd= CreateWindowEx(WS_EX_CLIENTEDGE,
szWindowName,
szWindowName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
400,
400,
HWND_DESKTOP,
NULL,
hInst,
NULL);
if(!hWnd) {
return EXIT_FAILURE;
}
ShowWindow(hWnd, nShow);
UpdateWindow(hWnd);
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
return 0;
}