how do i do a cursor... simple question
Printable View
how do i do a cursor... simple question
You draw the cursor in your resource editor (or import it...whatever)...then load the icon with LoadIcon()....use the returned handle either with the hIcon member of your Windows Class structure (WNDCLASSEX) or call SetCursor()
what about the part
don't i put something there?Code:wc.hCursor = LoadCursor(NULL, IDC_ARROw);
Typo on my part,..when I said "the hIcon member of your Windows Class structure" I meant " the hCursor member of your Windows Class structure"
Sorry :)
so first i got to load the cursor? how do i do that....
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;
}
ok
do u know any good windows tutorials (besides winprog cus i went through that already)
Yup...try Ken Fitlike's place hereQuote:
Originally posted by bluehead
ok
do u know any good windows tutorials (besides winprog cus i went through that already)
It's the "foolest" place on the web ;)