Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > WinAPI, ListBox, выделение цветом


Автор: Stemm 23.5.2011, 16:49
Помогите, не работает, хоть убей  smile  бьюсь долго, не могу найти ошибку 

не изменяет цвет текста в списке!!!

Код

program prog;

uses
  Windows,Messages;

var hParentWnd: HWND;

procedure AddToList(id: Integer; str: String);
begin
  hParentWnd := FindWindow(nil,'Dialog');
  SendDlgItemMessage(hParentWnd, id, LB_ADDSTRING, 0,
  Integer(PAnsiChar(str)));
end;

procedure  GetListSel(id:integer);
var numb:integer;
   Hd:hdc;
 begin
  hParentWnd := FindWindow(nil,'Dialog');
  numb:=SendDlgItemMessage(hParentWnd, id, LB_GETCURSEL, 0, 0);
  case numb of
  1: begin
      hd:=getdlgitem(hParentWnd,2002);
      SendDlgItemMessage(hParentWnd, id, wm_ctlcolorlistbox, hd,$001200 );
     end;
   end;
 end;

//Функция, обрабатывающая все команды от элементов управления окна
function DlgProc(hWin, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
 Result := 0;
  case uMsg of
   WM_COMMAND:
    begin
     case LoWord(wParam) of
   2002:if HiWord(wParam)=LBN_SELCHANGE then GetListSel(2002);

      1: EndDialog(hWin, 0);
      2:begin  AddToList(2002,'Red');
               AddToList(2002,'Green');
               AddToList(2002,'Blue');
         end;
    end;
  end;
   WM_DESTROY, WM_CLOSE: PostQuitMessage(0);
 end;
end;

begin

 {$R exem.res}
 DialogBox(hInstance, 'MAIN_FORM', 0, @DlgProc);

end.


M
MetalFan
для выделения кода есть кнопка "код"
Название темы должно отражать ее суть!

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