2015-08-09 4 views
0

Тест-тест очень прост. Я хочу установить содержимое Picture Control (IDC_STATIC1) при нажатии кнопки (IDC_BUTTON2) на растровый ресурс (IDB_BITMAP1). Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю кнопку, функция управления снимками не загружает изображение. Я подтвердил, что кнопка нажата IS, которая правильно зарегистрирована, а возвращаемое значение из LoadImage НЕ равно нулю.Как установить образ управления изображениями (Win32 API) во время выполнения?

Следующий код является обработчик сообщений для диалога:

BOOL WINAPI DialogProc2(HWND hWindow, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{ 
    switch (uMsg) 
    { 
     case WM_CLOSE: 
      EndDialog(hWindow, 0); 
      DestroyWindow(hWindow); 
      return TRUE; 

     case WM_INITDIALOG: 
      return TRUE; 

     case WM_COMMAND: 
      if (LOWORD(wParam) == IDC_BUTTON2) 
      { 
       HBITMAP bmp; 
       bmp = (HBITMAP)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR); 
       if (bmp == NULL) 
       { 
        MessageBox(NULL, "Error", "ERROR", MB_OK); 
        return TRUE; 
       } 
       SendDlgItemMessage(hWindow, IDC_STATIC1, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)bmp); 
       //placing a MessageBox here proves that the button press is being registered properly and that the message is being sent, but nothing is happening... 
      } 
      return TRUE; 
    } 

    return FALSE; 
} 
+0

Вы установили стиль для IDC_STATIC1 для включения «SS_BITMAP»? – Amit

+0

Я установил Type в Bitmap в окне свойств. http://prntscr.com/82j1vn Я не уверен, что это то же самое. Если нет, как бы установить стиль? Кажется, что для стиля нет свойства ... –

ответ

1

Казалось бы, «Name» свойство управления снимками был установлен на «IDC_STATIC1», но свойство «ID» был установлен на " IDC_STATIC». Изменение его на «IDC_STATIC1» решило проблему.

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