Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> <<CheckBox>> 
:(
    Опции темы
kostik_16
  Дата 17.1.2004, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: -4
Всего: 1



Мне спомощью API CreateWindowExнадо создать CheckBox, какой для этого необходимо указать классconfused.gif
PM MAIL   Вверх
Paradox
Дата 17.1.2004, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1135
Регистрация: 18.11.2002
Где: Россия

Репутация: нет
Всего: 1



kostik_16 ты срузу спрашивай как все стандартные компонеты через апи создавать smile.gif


--------------------
---
PM MAIL WWW   Вверх
PILOT
Дата 17.1.2004, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

Репутация: нет
Всего: 54



Код

program APIForm;
uses
 Windows, Messages;
const
 TITLE = 'Cамый простой пример API формы c CheckBox';
var
 h_Wnd : HWND; { дискриптор окна }
 hCheckBox1: HWND; { дискриптор CheckBox1 }

function WndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM;  lParam: LPARAM):
LRESULT; stdcall;
begin
 case (Msg) of
   WM_CREATE:
     begin { а здесь могло бы быть то что выполняется при старте проги }
     end;
   WM_Command:
     case LoWord(WParam) of
       43 : { обработка нажатия на кнопку 1 }
            MessageBox(h_wnd, 'check', 'от CheckBox1', MB_OK);
     end;
   WM_CLOSE:
     begin
       PostQuitMessage(0);
       Result := 0
     end;
   else
     Result := DefWindowProc(hWnd, Msg, wParam, lParam);
 end;
end;

function APIFormC(Width, Height : Integer ) : Boolean;
var
 wndClass : TWndClass;         // Window class
 dwStyle,                     // Window styles
 dwExStyle : DWORD;            // Extended window styles
 h_Instance : HINST;           // Current instance
begin
 h_Instance := GetModuleHandle(nil);
 with wndClass do                    // Set up the window class
 begin
   style:= CS_HREDRAW or // Redraws entire window if length changes
           CS_VREDRAW or // Redraws entire window if height changes
           CS_OWNDC;     // Unique device context for the window
   lpfnWndProc   := @WndProc;  // Set the window procedure to our func WndProc
   hInstance     := h_Instance;
   hCursor       := LoadCursor(0, IDC_ARROW);
   hbrBackground := COLOR_WINDOW; { стандартный цвет окна                
    (можно так 445566 (RGB), или просто clred (красный) ) }
   lpszClassName := 'APIForm';
 end;
 RegisterClass(wndClass);
 dwStyle := WS_OVERLAPPEDWINDOW; { форма с кнопками  вверху }
 dwExStyle := WS_EX_APPWINDOW;   { форма со значком приложения в углу }
 h_Wnd := CreateWindowEx(dwExStyle,     // Extended window styles
                         'APIForm',     // Class name
                         TITLE,         // Window title (caption)
                         dwStyle,       // Window styles
                         0, 0,          // позиция окна(левый верхний угол)
                         Width, Height, // Размеры Width и Heught соответственно
                         0,             // No parent window
                         0,             // No menu
                         h_Instance,    // Instance
                         nil);          // Pass nothing to WM_CREATE
 if h_Wnd = 0 then
 begin
   MessageBox(0, 'Не могу создать окно!', 'Ошибка', MB_OK or
MB_ICONERROR);
   Result := False;
   Exit;
 end;
 ShowWindow(h_Wnd, SW_SHOW);
 SetForegroundWindow(h_Wnd);
 SetFocus(h_Wnd);
 Result := True;
end;

function WinMain(hInstance : HINST; hPrevInstance : HINST;
         lpCmdLine : PChar; nCmdShow : Integer) : Integer; stdcall;
var
 msg : TMsg;
 finished : Boolean;
begin
 Finished := False;
 APIFormC( 400, 200 );  { ширина и высота }

// создание CheckBox ==========================================
 hCheckBox1 := CreateWindowEx(BS_AUTOCHECKBOX,{ вид как СheckBox }
                 'Button',  // класс(кнопка)
                 'CheckBox1', // caption кнопки
BS_AUTOCHECKBOX or WS_CHILD or WS_VISIBLE,{ обязательные параметры }
             15,   //left, отступ от левого края
             25,   //top, от верха
             125,  //width, длинна кнопки по горизонтали
             25,   //height, вертикали
             h_wnd,{ родитель кнопки, (на чём она будет появлятся) }
             43,{ связь c обработкой события(выше где wm_command ),
                  любое число, но оно должно быть в "wm_command",
                 в противном случае обработки нажатия небудет}
 GetModuleHandle(nil),
           nil);
// завершение создания CheckBox ================================

 while not finished do
   if (PeekMessage(msg, 0, 0, 0, PM_REMOVE)) then begin
     if (msg.message = WM_QUIT) then finished := True
     else begin
      TranslateMessage(msg);
       DispatchMessage(msg);
     end;
 end;
 Result := msg.wParam;
end;

begin
 WinMain(hInstance, hPrevInst, CmdLine, CmdShow);
end.


СУВ.
ЗЫ. Нашел в интернете за 35 секунд...



--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
kostik_16
Дата 17.1.2004, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: -4
Всего: 1



Чет попробывал прописать, плучилось что-то похожое на кнопку на которой расположен CheckBox, может необходимо вписать еще какое-то свойствоconfused.gif
PM MAIL   Вверх
Kesh
Дата 17.1.2004, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2488
Регистрация: 31.7.2002
Где: Германия, Saarbrü cken

Репутация: 4
Всего: 54



kostik_16 Посмотри информацию по KOL мне кажется это то, что тебе надо... (Программирование без VCL)/


--------------------
user posted image
PM MAIL WWW ICQ Skype   Вверх
kostik_16
Дата 18.1.2004, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: -4
Всего: 1



А чет по проще нельзя? Я имею в виде с тем-же CreateWindowEx???

Может надо сам класс изменить 'button' или свойства какие-тоconfused.gif??
PM MAIL   Вверх
kostik_16
Дата 18.1.2004, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 196
Регистрация: 23.7.2003

Репутация: -4
Всего: 1



Надо вот так, тогда будет все работать как положено:

Цитата
hCheckBox1 := CreateWindowEx(0 ,{ вид как СheckBox }
                'Button',  // класс(кнопка)
                'CheckBox1', // caption кнопки
BS_AUTOCHECKBOX or WS_CHILD or WS_VISIBLE,{ обязательные параметры }
            15,  //left, отступ от левого края
            25,  //top, от верха
            125,  //width, длинна кнопки по горизонтали
            25,  //height, вертикали
            h_wnd,{ родитель кнопки, (на чём она будет появлятся) }
            43,{ связь c обработкой события(выше где wm_command ),
                  любое число, но оно должно быть в "wm_command",
                в противном случае обработки нажатия небудет}
GetModuleHandle(nil),
          nil);



PM MAIL   Вверх
Medved
Дата 19.1.2004, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154



Цитата
Мне спомощью API CreateWindowExнадо создать CheckBox, какой для этого необходимо указать класс


А собственно говоря зачем?


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0807 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.