Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > в диалоге есть listbox - надо добавить текст


Автор: neosapient 24.9.2007, 14:17
написал примерчик в VC7
надо в диалоге добавить текст - не пойму в чем проблема
Код

#include <windows.h>
#include <commctrl.h>
#pragma comment(lib,"comctl32.lib")
#include "resource.h"
HINSTANCE hInst;

LRESULT CALLBACK DlgMainProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
hInst=hInstance;
InitCommonControls (); 
DialogBox(hInst,MAKEINTRESOURCE(IDD_DIALOG1),0,(DLGPROC)DlgMainProc);
return 0;
}

LRESULT CALLBACK DlgMainProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int ret;
PAINTSTRUCT ps;
HDC dc;
static HWND hListState;
switch( message )
{
case WM_INITDIALOG:
    hListState = GetDlgItem(hDlg,IDC_LIST1);
    SetDlgItemText(hDlg,IDC_LIST1,"hi1");
    SetWindowText (hListState,"hi2");
    SetWindowText(GetDlgItem(hDlg, IDC_LIST1), "hi3");
    break;   
case WM_PAINT:
    dc = BeginPaint(hDlg, &ps);
    EndPaint(hDlg, &ps);
    break;    
case WM_COMMAND:
    switch (LOWORD(wParam))
    {
    case IDOK:
        SetDlgItemText(hDlg,IDC_LIST1,"hi1");
        break;
    case IDCLOSE:
    case IDCANCEL:
        EndDialog(hDlg, LOWORD(wParam));
        return TRUE;
    }
    break;         
case WM_DESTROY :
    PostQuitMessage(0);
    return 0;
}    
return 0;
}



 smile  smile  smile 

Автор: Mihhail 24.9.2007, 16:27
Текст в LISTBOX добавляется следующим образом:
SendMessage( GetDlgItem(hDlg, IDC_LIST1), LB_ADDSTRING, 0, (LPARAM)"hi1" );

Но список не будет отрисовываться т.к. у него в resource.rc стоит флаг
LBS_OWNERDRAWFIXED - нужно убрать, и этот тоже LBS_NODATA!

Автор: Programister0 24.9.2007, 19:17
отлично!
у меня такая-же ерунда была, стеснялся написать.

Автор: neosapient 24.9.2007, 23:08
 smile 

Автор: Mihhail 25.9.2007, 07:48
Цитата(Programister0 @  24.9.2007,  23:17 Найти цитируемый пост)
у меня такая-же ерунда была, стеснялся написать.

А чего стесняться, здесь люди для того и собираются что бы опытом обмениваться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)