Gå til innhold

Hva er galt med denne win32/winapi koden?


Anbefalte innlegg

Jeg bruker denne koden til å lage sånn liste greie..

#include <windows.h>
#include <commctrl.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
				HINSTANCE hPrevInstance,
				LPSTR lpszArgument,
				int nFunsterStil)

{
HWND hwnd;			   /* This is the handle for our window */
MSG messages;			/* Here messages to the application are saved */
WNDCLASSEX wincl;		/* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure;	  /* This function is called by windows */
wincl.style = CS_DBLCLKS;				 /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;				 /* No menu */
wincl.cbClsExtra = 0;					  /* No extra bytes after the window class */
wincl.cbWndExtra = 0;					  /* structure or the window instance */
/* Use Windows's default color as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
	return 0;

/* The class is registered, let's create the program*/
hwnd = CreateWindowEx (
	   0,				   /* Extended possibilites for variation */
	   szClassName,		 /* Classname */
	   "Windows App",	   /* Title Text */
	   WS_OVERLAPPEDWINDOW, /* default window */
	   CW_USEDEFAULT,	   /* Windows decides the position */
	   CW_USEDEFAULT,	   /* where the window ends up on the screen */
	   544,				 /* The programs width */
	   375,				 /* and height in pixels */
	   HWND_DESKTOP,		/* The window is a child-window to desktop */
	   NULL,				/* No menu */
	   hThisInstance,	   /* Program Instance handler */
	   NULL				 /* No Window Creation data */
	   );

/* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil);

/* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage (&messages, NULL, 0, 0))
{
	/* Translate virtual-key messages into character messages */
	TranslateMessage(&messages);
	/* Send message to WindowProcedure */
	DispatchMessage(&messages);
}

/* The program return-value is 0 - The value that PostQuitMessage() gave */
return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)				  /* handle the messages */
{
	case WM_DESTROY:
		PostQuitMessage (0);	   /* send a WM_QUIT to the message queue */
		break;
	default:					  /* for messages that we don't deal with */
		return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}
// CreateATreeView - creates a tree-view control. 
// Returns the handle to the new control if successful,
// or NULL otherwise. 
// hwndParent - handle to the control's parent window. 
// lpszFileName - name of the file to parse for tree-view items.

HWND CreateATreeView(HWND hwndParent, LPSTR lpszFileName) 
{ 
RECT rcClient;  // dimensions of client area 
HWND hwndTV;	// handle to tree-view control 

// Ensure that the common control DLL is loaded. 
InitCommonControls(); 

// Get the dimensions of the parent window's client area, and create 
// the tree-view control. 
GetClientRect(hwndParent, &rcClient); 
hwndTV = CreateWindowEx(0,
						WC_TREEVIEW,
						"Tree View",
						WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES, 
						0, 
						0, 
						rcClient.right, 
						rcClient.bottom,
						hwndParent, 
						(HMENU)ID_TREEVIEW, 
						g_hinst, 
						NULL); 

// Initialize the image list, and add items to the control. 
// InitTreeViewImageLists and InitTreeViewItems are application- 
// defined functions. 
if (!InitTreeViewImageLists(hwndTV) || 
			!InitTreeViewItems(hwndTV, lpszFileName))
{ 
	DestroyWindow(hwndTV); 
	return FALSE; 
} 
return hwndTV;
}

 

Men fikk noen errors, jeg fikset den ene, måtte inkludere commctrl.h

Men greide ike å løse den andre erroren.

Det var feil med ID_TREEVIEW

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...