void MyDlg::OnBnClickedButton1()
{
CButton *MyButton;
MyButton = new CButton();
MyButton->Create("MyButton", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(120,10,220,50), MyDlg::m_pParentWnd, 1);
}
Окно диалога. Вставка элемента управления
Пробовал так, но ошибка:
Код:
Пробовал так, но ошибка:
Код:
void MyDlg::OnBnClickedButton1()
{
CButton *MyButton;
MyButton = new CButton();
MyButton->Create("MyButton", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(120,10,220,50), MyDlg::m_pParentWnd, 1);
}
{
CButton *MyButton;
MyButton = new CButton();
MyButton->Create("MyButton", WS_CHILD|WS_VISIBLE|SS_CENTER, CRect(120,10,220,50), MyDlg::m_pParentWnd, 1);
}
SS_CENTER разве можно применять к копкам? У них есть стили BS_CENTER и BS_VCENTER - поэтому у тебя наверное и ошибка, код-то в общем верный...
А вообще есть дедовский способ для подобных игр - называется контрол есть, но невидим. Просто поставь на диалог контрол без стиля WS_VISIBLE, а потом, когда его надо показать - ShowWindow(SW_SHOW), или SW_HIDE если его надо спрятать. А ещё помни, что MFC может отказатся сделать твой контрол включенным, если ты не предусмотришь в таблице сообщений хандлера для id'шки твоей кнопки (id - последний параметр Create()) - учти, его скорее всего нужно будет делать вручную, и вручную же вписывать в таблицу ON_COMMAND. Именно поэтому предпочтительнее всегда будет вариант с невидимой кнопкой - меньше телодвижений. Ведь в конце-концов, если нет места, её всегда можно передвинуть SetWindowPos'ом.
[/QUOTE]
Понял, попробую...
[QUOTE=Ireul]
А вообще есть дедовский способ для подобных игр - называется контрол есть, но невидим. Просто поставь на диалог контрол без стиля WS_VISIBLE, а потом, когда его надо показать - ShowWindow(SW_SHOW), или SW_HIDE если его надо спрятать. А ещё помни, что MFC может отказатся сделать твой контрол включенным, если ты не предусмотришь в таблице сообщений хандлера для id'шки твоей кнопки (id - последний параметр Create()) - учти, его скорее всего нужно будет делать вручную, и вручную же вписывать в таблицу ON_COMMAND. Именно поэтому предпочтительнее всегда будет вариант с невидимой кнопкой - меньше телодвижений. Ведь в конце-концов, если нет места, её всегда можно передвинуть SetWindowPos'ом.[/QUOTE]
Не подходит. У меня будут различные элементы и их количество будет генерироваться программно.
Vovka получи HWND диалога и при нажатии на кнопку вызови функцию CreateWindow("button",.../*MSDN*/...); и назнач этой кнопке HWND диалога как родителя.
Спасибо всем!