Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [WinAPI, Visual C++] Элементы управления


Автор: deuterium 30.10.2008, 21:12
Помогите пожалуйста вот с такой прогой:

Окно содержит пустую строку ввода с надписью "Введите фамилию, имя и отчество", группу переключателей "Пол" из двух пунктов ("М" и "Ж") и кнопку "Да". При нажатии на кнопку "Да" непустое содержимое строки ввода записать в заголовок группы. Затем при выборе пола сообщить новое содержимое заголовка группы, выбранный пол и вернуться к исходному состоянию.  smile 

Автор: 586 31.10.2008, 01:38
Цитата(deuterium @  30.10.2008,  21:12 Найти цитируемый пост)
заголовок группы

Что такое "заголовок группы"? Заголовок окна? Или GroupBox? Если GroupBox, где он расположен?  smile 

Диалоги нужно использовать (DialogBoxParam), или всё нужно создавать через CreateWindowEx?

Автор: deuterium 31.10.2008, 09:16
586, "Что такое "заголовок группы"?" - 
Честно сказать, я сам не особо понял. Но пусть этот будет заголовок группы переключателей "Пол". А расположить эту группу можно в любом месте окна.  smile 

"Диалоги нужно использовать (DialogBoxParam), или всё нужно создавать через CreateWindowEx? " - Я в этом ничего не понимаю, поэтому мне всё-равно. Главное, чтоб работало как надо.  smile  smile 

Автор: 586 31.10.2008, 22:29
Использовал диалоги. Visual C++ 6.

Автор: deuterium 2.11.2008, 14:31
586, 
Огромное спасибо!  smile 

Автор: deuterium 10.11.2008, 23:38
586, 
Вот только один вопросик возник:
Что означает этот код:
Код

INT APIENTRY WinMain(HINSTANCE hinst, HINSTANCE, LPSTR, INT)
{
    DialogBoxParam(hinst, MAKEINTRESOURCE(IDD_DIALOG1), NULL, MainDlgProc, 0);
    return 0;
}

И в частности APIENTRY?

 smile 


Автор: 586 11.11.2008, 22:29
Цитата(deuterium @  10.11.2008,  23:38 Найти цитируемый пост)
И в частности APIENTRY?

соглашение __stdcall
Код
//windef.h
#define WINAPI      __stdcall
#define APIENTRY    WINAPI


MAKEINTRESOURCE делает приведение идентификатора ресурса к указателю на строку. Если значение указателя больше 0xFFFF, то по нему ищется строка. Иначе, этот указатель используется как число.

Автор: deuterium 11.11.2008, 23:50
586, 
Благодарю за разъяснение.  smile 

Ну и еще хотелось бы узнать, что означает вот эта штука:
BOOL CALLBACK MainDlgProc   smile 

О назначении всего остального я уже по смыслу догадался.  smile 

Автор: 586 12.11.2008, 22:34
Здесь названия APIENTRY и CALLBACK употребляются по смыслу. APIENTRY означает, что функция является точкой входа, а CALLBACK - что это функция обратного вызова (CALLBACK-функция). В документации эти функции описаны с этими ключевыми словами. Сделано это для наглядности и переносимости на разные версии Windows.

В Win16 эти слова означают соглашение __pascal.
В версиях Windows постарше означает соглашение __stdcall.

Описание callback-функции для DialogBoxParam: http://msdn.microsoft.com/en-us/library/ms645469(VS.85).aspx

Автор: deuterium 12.11.2008, 22:42
586, 
Спасибо большое за разъяснения.  smile   smile 
Ты мне очень помог.   smile 

  smile 

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