Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Все эти API CreateWindow / 3 сообщений из 3, страница 1 из 1
05.11.2003, 13:10
    #32316013
new one
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Все эти API CreateWindow
Может подскажет кто или приведет пример по функции CreateWindow
а то вот я написал

w_struct.style:=CS_VREDRAW or CS_HREDRAW;
w_struct.hbrBackground:=COLOR_WINDOW;
w_struct.lpszClassName:='serg';
RegisterClass(@w_struct);

CreateWindow(@w_struct,
'serg_1',
WS_BORDER or WS_CAPTION or WS_VSCROLL
,
10,10,
100,100,
0,
0,
form1.Handle,
0);

ошибку выдает, и не пойму почему
...
Рейтинг: 0 / 0
05.11.2003, 14:00
    #32316109
oracle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Все эти API CreateWindow
ну тут ты просто трохи херню написал, в принципе как бы правильно, только немного херню.
На тебе пример в C++ переведи на дельфи и юзай...
я думаю сделаешь


#define STRICT
#define WIN32_LEAN_AND_MEAN
#define WINDOWAPI

#include <windows.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM WParam, LPARAM LParam);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int CmdShow);


#include "Window.h"

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR CmdLine, int CmdShow)
{
char p_name[] = "SGK test by Storm from Revolt studio";
WNDCLASSEX wnd_class;
HWND h_wnd;
MSG msg;

wnd_class.cbSize = sizeof(wnd_class);
wnd_class.style = CS_HREDRAW | CS_VREDRAW;
wnd_class.lpfnWndProc = WndProc;
wnd_class.cbClsExtra = 0;
wnd_class.cbWndExtra = 0;
wnd_class.hInstance = hInst;
wnd_class.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wnd_class.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wnd_class.hCursor = LoadCursor(NULL, IDC_ARROW);
wnd_class.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
wnd_class.lpszMenuName = NULL;
wnd_class.lpszClassName = p_name;
RegisterClassEx(&wnd_class);

h_wnd = CreateWindowEx(0, p_name, p_name, WS_OVERLAPPEDWINDOW,
0, 0, 800, 600, NULL, NULL, hInst, NULL);
if(h_wnd==NULL)
return FALSE;
ShowWindow(h_wnd, SW_SHOW);
UpdateWindow(h_wnd);

while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int)(msg.wParam);
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM WParam, LPARAM LParam)
{
switch(Msg)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_KEYDOWN:
break;
default:
return DefWindowProc(hWnd, Msg, WParam, LParam);
}
return 0;
}




...
Рейтинг: 0 / 0
05.11.2003, 14:04
    #32316122
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Все эти API CreateWindow
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
function PU_WindowProc(hw:THandle; uMsg:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT;stdcall;
var n:Integer;
begin
  case uMsg of
    WM_DESTROY : begin
      PostQuitMessage( 0 );
      Result:= 0 ;
      Exit;
    end;
    WM_SETTINGCHANGE : begin
      zDate.Invalidate;
      for n :=  0  to(Screen.FormCount- 1 )do PostMessage(Screen.Forms[n].Handle, UWM_SETTINGCHANGE,  0 ,  0 );
    end;
  end;
  Result := DefWindowProc(hw, uMsg, wParam, lParam);
end;

procedure Tdm.PU_CreateWnd;
var wc: TWndClass;
begin
  FillChar(wc,sizeof(WNDCLASS), 0 );
  wc.lpfnWndProc   := @PU_WindowProc;
  wc.hInstance     := HInstance;
  wc.lpszClassName := 'CLASS_74292732-B4E8-498D-8CC1-30E8B9F8BAF2';
  Windows.RegisterClass(wc);
  FWindowHandle := CreateWindow(PChar(wc.lpszClassName),PChar(''),WS_POPUP, 0 , 0 , 0 , 0 , 0 , 0 ,HInstance,nil);
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Все эти API CreateWindow / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]