2012-05-27 7 views
0
case WM_CREATE: 
    { 
    int randomsize=0; 
    //std::string lineofquote; 
    char lineofquote[255]; 
    std::ifstream infile; 
    infile.open("quotes.txt",std::ios::in); 
    if (infile) 
    { 
     MessageBox(NULL,"infile failed","Error reading file", MB_OK); 
     return 0; 
    } 
    newhandler = CreateWindow(TEXT("static"),TEXT("Quote here") ,WS_CHILD | WS_VISIBLE , 0,0,550,150,hWnd,NULL,NULL,NULL); 

    while(!infile.eof())//get file size 
    { 
     infile.getline(lineofquote,255,'\n'); 
     SetWindowText(newhandler,lineofquote); 
     randomsize++; 
    } 
    infile.close(); 
    //std::cout<<randomsize; 

    break; 
    } 

Когда я запускаю эту программу, я вообще не вижу своих окон. Что может быть проблемой здесь?Простые окна C++ не видны

+6

Uh - вы называете «ShowWindow()» где угодно? http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx – paulsm4

+1

И я предполагаю, что новое окно, которое вы пытаетесь создать, * отличается * от которое вызывало событие WM_CREATE. Я также предполагаю, что ваше событие WM_CREATE на самом деле вызвано;) – paulsm4

ответ

1

Это не то, как вы создаете окно. Вы создаете окно, используя CreateWindowAPI. Вам нужно сделать пару вещей. Может быть, это MSDN tutorial может помочь.

WM_CREATE - событие, запущенное при создании окна, как правило, с использованием вышеуказанного API.

Всегда внимательно прочтите документацию. Пока вы работаете с API Win32, MSDN будет вашей библией.

+0

Он * использует * 'CreateWindow'. Или, по крайней мере, он использует его для создания контроля STATIC. Я не знаю, в каком окне он говорит. Он забыл опубликовать полный код. –

1

Проверьте свою функцию ShowWindow(). Вы можете установить CmdShow parameter to 0, что означает, что ваше окно не будет видно, или просто вы забыли вызвать эту функцию. Кроме того, вы можете проверить, работает ли RegisterClassEx(...).

Смежные вопросы