Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: ComboBox ei aukene

Eero Harmaala [28.07.2003 19:14:39]

#

Tällä koodilla kun tekee ikkunan ja siihen ComboBox:in, niin se ComboBox ei aukea ainakaan itselläni kun käännän koodin Visual c++ 6:lla:

#include <windows.h>

HWND hComboLoota;

LRESULT CALLBACK ViestienKasittelija(HWND hWnd, UINT Viesti, WPARAM wParam, LPARAM lParam);
HRESULT LuoIkkuna(HINSTANCE hInstance, INT nCmdShow);

INT WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPreviousInstance,
                   LPSTR     lpCmdLine,
                   INT       nCmdShow)
{

    LuoIkkuna(hInstance, nCmdShow);

    MSG viesti;
    while(viesti.message != WM_QUIT){

        if(PeekMessage(&viesti, NULL, 0U, 0U, PM_REMOVE)) {

            TranslateMessage(&viesti);
            DispatchMessage(&viesti);
        } else {

        }
    }

	UnregisterClass("IkkunaLuokanNimi", hInstance);

    return 0;
}


HRESULT LuoIkkuna(HINSTANCE hInstance,
                  INT nCmdShow)
{
    HWND hWnd;
    WNDCLASS wc;

    wc.style		= CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wc.lpfnWndProc	= ViestienKasittelija;
    wc.cbClsExtra	= 0;
    wc.cbWndExtra	= 0;
    wc.hInstance	= hInstance;
    wc.hIcon		= LoadIcon((HINSTANCE) NULL,IDI_APPLICATION);
    wc.hCursor		= LoadCursor((HINSTANCE) NULL,IDC_ARROW);
    wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = "IkkunaLuokanNimi";

    if (!RegisterClass(&wc))
        return FALSE;

    hWnd = CreateWindow("IkkunaLuokanNimi",
                        "Ikkunan Otsikko",
                        WS_OVERLAPPED | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
                        100,
                        100,
                        300,
                        200,
                        (HWND)  NULL,
                        (HMENU) NULL,
                        hInstance,
                        (LPVOID) NULL);

    if(!hWnd)
        return FALSE;

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    return S_OK;

}


LRESULT CALLBACK ViestienKasittelija(HWND   hWnd,
                                     UINT   Viesti,
                                     WPARAM wParam,
                                     LPARAM lParam)
{

    switch(Viesti) {

		case WM_CREATE:
			{

			hComboLoota = CreateWindow("COMBOBOX",
					"listalaatikko",
					WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | CBS_HASSTRINGS | CBS_SORT,
					10,
					10,
					100,
					20,
					hWnd,
					(HMENU) 101,
					(HINSTANCE) GetWindowLong (hWnd, GWL_HINSTANCE),
					(LPVOID) NULL);

			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 1");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 2");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 3");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 4");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 5");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 6");
			SendMessage (hComboLoota, CB_ADDSTRING, 0, (LPARAM) (LPCTSTR) "Valinta 7");

			SendMessage (hComboLoota, CB_SETCURSEL, (WPARAM) 0, 0);

			} break;

		case WM_COMMAND:
			{

			} break;

		case WM_DESTROY:
          {
			PostQuitMessage(0);
			return TRUE;
          } break;

		default:break;
    }

    return DefWindowProc(hWnd, Viesti, wParam, lParam);
}

thefox [28.07.2003 20:56:29]

#

Vika on CreateWindowin nHeight-parametrissa jonka olet asettanut aivan liian pieneksi, kokeile vaikkapa arvoa 100.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta