Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2008, 13:14   #1
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
Вопрос Помогите с созданием кнопки

Хочу создать кнопку на с++ с помощью WinApi
Код:
 CreateWindowEx("button", "test",
    WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
    110, 320,
    90, 30,
    hwnd,
    (HMENU) IDB_BUTTON1,
    hThisInstance, NULL);
но компилятор выдает ошибку

Код:
In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)': 
invalid conversion from `const char*' to `DWORD' 
invalid conversion from `int' to `const CHAR*' 
invalid conversion from `HWND__*' to `int' 
cannot convert `HMENU__*' to `HWND__*' for argument `9' to `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__*, HMENU__*, HINSTANCE__*, void*)'
Артэс вне форума Ответить с цитированием
Старый 24.05.2008, 13:21   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Параметр один забыли. В CreateWindowEx первым параметром идут дополнительные стили окна. Собственно, всё это можно видеть в текстах оишбок.
B_N вне форума Ответить с цитированием
Старый 24.05.2008, 14:31   #3
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Спасибо, получилось. А можете подсказать, каким образом можно разместить определенный текст, за место кнопки?
Артэс вне форума Ответить с цитированием
Старый 24.05.2008, 14:40   #4
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

например, TextOut можно:
Код:
BOOL TextOut(
    HDC hdc,	// handle of device context 
    int nXStart,	// x-coordinate of starting position  
    int nYStart,	// y-coordinate of starting position  
    LPCTSTR lpString,	// address of string 
    int cbString 	// number of characters in string 
   );
rpy3uH вне форума Ответить с цитированием
Старый 24.05.2008, 15:14   #5
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Что-то я не понял. А координаты и сам текст где и каким образом прописывать?

Последний раз редактировалось Артэс; 24.05.2008 в 15:18.
Артэс вне форума Ответить с цитированием
Старый 25.05.2008, 01:28   #6
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Артэс, а Вы что именно сделать-то хотите? Поставьте STATIC вместо кнопки, если не хотите через TextOut/DrawText. А второй Ваш вопрос весьма загадочен. Что есть
Цитата:
А координаты и сам текст где и каким образом прописывать?
? Они передаются параметрами...
B_N вне форума Ответить с цитированием
Старый 25.05.2008, 02:07   #7
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Хочу разместить поле с текстом, и что бы в дальнейшем текст, который содержит поле, мог изменяться программой, например при нажатии кнопки, текст стал бы другим. Но сам пользователь ничего в нем печатать не может.

Если не трудно, напишите пожалуйста пример Заранее благодарен!
Артэс вне форума Ответить с цитированием
Старый 25.05.2008, 02:33   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Значит используйте Static Control. Думаю, после того, как Вы создали окно класса BUTTON, не должно возникнуть сложностей с классом STATIC...
B_N вне форума Ответить с цитированием
Старый 25.05.2008, 02:41   #9
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Принцип понял. Спасибо, получилось. Теперь хотелось бы узнать, как можно изменить цвет фона поля)
Артэс вне форума Ответить с цитированием
Старый 25.05.2008, 14:02   #10
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от Артэс Посмотреть сообщение
хотелось бы узнать, как можно изменить цвет фона поля
Надо обрабатывать сообщение WM_CTLCOLORSTATIC. MSDN:
Цитата:
The WM_CTLCOLORSTATIC message is sent to the parent window of a static control when the control is about to be drawn. By responding to this message, the parent window can use the given device context handle to set the text and background colors of the static control.

WM_CTLCOLORSTATIC
hdcStatic = (HDC) wParam; // handle of display context
hwndStatic = (HWND) lParam; // handle of static control

Parameters
hdcStatic
Value of wParam. Identifies the device context for the static control window.
hwndStatic
Value of lParam. Identifies the static control.

Return Values
If an application processes this message, the return value is the handle of a brush that Windows uses to paint the background of the static control.

Default Action
The DefWindowProc function selects the default system colors for the static control.

Remarks
The WM_CTLCOLORSTATIC message is never sent between threads; it is sent only within the same thread.
Somebody вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с созданием сложной таблицы GrayBrother Microsoft Office Excel 4 25.08.2008 10:16
Помогите пожалуйста с созданием лабы Pater Помощь студентам 1 29.05.2007 23:40
Помогите с созданием программы: Wander Помощь студентам 2 19.04.2007 20:10