ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

WinAPI GUI,подскажите
  #1  
Старый 31.01.2010, 17:22
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию WinAPI GUI,подскажите

1.Создаю едит
Код:
long pEdit;//это описанно
int _stdcall Edit(HWND hWnd, UINT uMsg, WPARAM wParam, long lParam);//глобально
////////////////////.............//////////////////////
HWND hEdit=CreateWindow("EDIT",TEXT("Hello"),WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE,10,10,200,30,hWnd,(HMENU)1,hInst,NULL);
pEdit=SetWindowLong(hEdit,GWL_WNDPROC,(long)Edit);//выполняю после создания родительского окна
//////////////////////////..........................//////////////////////
int _stdcall Edit(HWND hWnd, UINT uMsg, WPARAM wParam, long lParam)
{
return CallWindowProc((WNDPROC)pEdit,hWnd,uMsg,wParam,lParam);
}//ф-ция обработки сообщений для едита
В итоге графически получается место на главном окне в которое можно писать текст.
Вопрос как задать ему цвет фона,шрифта,сделать каемку вокруг него?
2.Создание кнопки
Код:
HWND hButton=CreateWindow("button",TEXT("OK!"),WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON ,80,80,50,30,hWnd,(HMENU)2,hInst,NULL);
Вопрос почему неполучается кнопке задать обработчик событий аналогично едиту?Если пробую сделать так же,то кнопка просто не появляется
 
Ответить с цитированием

  #2  
Старый 31.01.2010, 21:27
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

CreateWindowEx(WS_EX_CLIENTEDGE,... для edit
SendMessage( hEdit, WM_SETFONT, (WPARAM)GetStockObject( ANSI_VAR_FONT ), 0 );
- шрифт для задать для любого элемента... ну создание шрифта например вот

HFONT hTit=CreateFont(15,6,0,0,FW_BOLD,FALSE,FALSE,FALSE ,DEFAULT_CHARSET,OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS ,CLEARTYPE_QUALITY,FIXED_PITCH|FF_MODERN,_TEXT("Ar ial"));

В GDI+ все намного проще реализуется...

про кнопку если ты задаешь ей собственный обработчик (вопрос зачем?), то тебе нужно ее или самому отрисовывать или возвращать обработчик стандартный.

Код:
oldfunc=SetWindowLong(hbutton, GWL_WNDPROC, (LONG)&GarikBtnProc);

LRESULT CALLBACK GarikBtnProc(HWND hWnd,UINT Message, UINT wParam, LONG lParam)
{
if (CallWindowProc((WNDPROC)oldfunc, hWnd, Message, wParam, lParam)) return DefWindowProc(hWnd, Message, wParam, lParam);
	return 0;
}
Ну а если ты не знал что нажатия кнопки обрабатываются в WM_COMMAND главной функции окна
то вот пример

Код:
switch(Message)
	case WM_COMMAND:

		if(wParam==BT_CLOSE)
			{
			AlphaClose(hWnd);
			PostQuitMessage(0);
			}
return 0;
}

Последний раз редактировалось Gar|k; 31.01.2010 в 22:08..
 
Ответить с цитированием

  #3  
Старый 01.02.2010, 00:41
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Неподскажешь какое оконное сообщение заставляет окно свернутся?
 
Ответить с цитированием

  #4  
Старый 01.02.2010, 00:58
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

ShowWindow(hWnd,SW_MINIMIZE); // программно свернуть любое окошко...

ну а если в своем окне нужно обработать нажатие на свернуть то...

case WM_SIZE:
if(wParam == SIZE_MINIMIZED) { ... } // делаем что-то при сворачивании
return 0;

а если нужно имеено по нажатию на кнопку свернуть то

case WM_SYSCOMMAND:
if(wParam==SC_MINIMIZE){ShowWindow(hWnd,SW_HIDE);r eturn 0;}
break;

это отрывочек из моей проги при нажатии свернуть она просто скрывается

Последний раз редактировалось Gar|k; 01.02.2010 в 01:05..
 
Ответить с цитированием

  #5  
Старый 01.02.2010, 01:00
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

почему бы не банить товарищей, которые не могут воспользоваться гуглом прежде, чем флудить в форуме?

http://tinyurl.com/yhae7p7

туева хуча топиков о прописных истинах, описанных в мсдне вдоль и поперек.
 
Ответить с цитированием

  #6  
Старый 01.02.2010, 01:07
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

Ra$cal тут большая часть форума не умеет пользоваться поиском... и лишь избранные вообще догадываются об msdn я давно это понял
 
Ответить с цитированием

  #7  
Старый 01.02.2010, 01:19
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Цитата:
Сообщение от Ra$cal  
почему бы не банить товарищей, которые не могут воспользоваться гуглом прежде, чем флудить в форуме?

http://tinyurl.com/yhae7p7

туева хуча топиков о прописных истинах, описанных в мсдне вдоль и поперек.
Сам флуд разводишь,хочешь оскорбить - пиши в ЛС.
 
Ответить с цитированием

  #8  
Старый 01.02.2010, 17:55
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Цитата:
Сообщение от Gar|k  
ShowWindow(hWnd,SW_MINIMIZE); // программно свернуть любое окошко...

ну а если в своем окне нужно обработать нажатие на свернуть то...

case WM_SIZE:
if(wParam == SIZE_MINIMIZED) { ... } // делаем что-то при сворачивании
return 0;
Только сейчас глянул при alt-tab неприходит такого сообщения
 
Ответить с цитированием

  #9  
Старый 01.02.2010, 18:05
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
Провел на форуме:
991929

Репутация: 395


По умолчанию

alt+tab не сворачивает окно, а делает выбранное окно активным SetActiveWindow.... alt+esc свернуть
 
Ответить с цитированием

  #10  
Старый 01.02.2010, 20:30
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Цитата:
Сообщение от Gar|k  
alt+tab не сворачивает окно, а делает выбранное окно активным SetActiveWindow.... alt+esc свернуть
А как его вернуть назад?
Код:
SetActiveWindow(hWnd);
SetFocus(hWnd);
непомагает
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinAPI + TMsRdpClient6 mailbrush С/С++, C#, Delphi, .NET, Asm 3 04.09.2009 23:33
Проблема с WINAPI. xa-xa89 С/С++, C#, Delphi, .NET, Asm 12 11.08.2009 02:42
Отключение мыши WinAPI Haruka С/С++, C#, Delphi, .NET, Asm 16 17.01.2009 18:26
политики безопасности в WinAPI grinay С/С++, C#, Delphi, .NET, Asm 4 11.12.2006 15:33
Помогите с WinAPI в Delphi EST a1ien С/С++, C#, Delphi, .NET, Asm 13 12.10.2006 11:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ