Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

А картиночку на MessageBox прорисовать можно?   Найти похожие ветки 

 
koha ©   (2007-01-09 07:12) [0]

А картиночку на MessageBox прорисовать можно?


 
ЮЮ ©   (2007-01-09 07:50) [1]

Application.MessageBox("Получите!", "Вам картиночку?", MB_ICONQUESTION);
А так жк можно несколько кнопочек и любую из них - по умолчанию.


 
koha ©   (2007-01-09 08:03) [2]

Несовсем то..
надо диаог
Application.MessageBox("Получите!", "Вам картиночку?",MB_YESNO)
а иконку от MB_ICONWARNING


 
Джо ©   (2007-01-09 08:11) [3]

> [2] koha ©   (09.01.07 08:03)
> Несовсем то..
> надо диаог
> Application.MessageBox("Получите!", "Вам картиночку?",MB_YESNO)
>
> а иконку от MB_ICONWARNING

Application.MessageBox("Получите!", "Вам картиночку?",MB_YESNO or MB_ICONWARNING)


 
koha ©   (2007-01-09 08:12) [4]

Победил - таки  методом научного втыка
Диалог + юбая  Иконка, надо сделать так:

MessageBox(Handle, "Иконка и диалог "да" "Нет" ", "Внимание", MB_YESNO or MB_ICONWARNING );


 
koha ©   (2007-01-09 08:13) [5]

Долго шло мое сообщение, жаль.


 
Джо ©   (2007-01-09 08:34) [6]

> [4] koha ©   (09.01.07 08:12)
> Победил - таки  методом научного втыка

Странный подход долго и нудно тыкать, когда есть Справка.


 
palva ©   (2007-01-09 12:42) [7]

Справка - последнее дело.
Сначала нужно тыкать, потом спросить у соседа, потом спросить на форуме, потом поискать в интернете. И уж если все равно не работает, читать справку.


 
Anatoly Podgoretsky ©   (2007-01-09 14:17) [8]

> palva  (09.01.2007 12:42:07)  [7]

Нормальные герои всегда идут в обход.


 
koha ©   (2007-01-10 00:36) [9]

- А алгоритм моего поиска решения задачи не совсем верный, который вы представили. Все вовсе не так и было. Сперва я открыл справку и не хрена не понял так, как там языком Била Гейтса написано было, затем целое утро с 4:00 до 10:00 гуглил решение - нашел нетак уж много всяких способов и в основном у "птицеводов", что-  на вроде подобных:
1. способ
INT_PTR CALLBACK _CustomDialogProc
 ( HWND hwndDlg,
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam
 )
{
 if (WM_COMMAND == uMsg)
   ::EndDialog(hwndDlg, LOWORD(wParam));

 return FALSE;
}
int nRet = ::DialogBoxParam(hInstance, MAKEINTRESOURCE(ID_CUSTOMDIALOG),
   NULL, _CustomDialogProc, 0);


2. способ
LRESULT _CustomMessageBoxInit(HWND hwndDlg, _SCustomMessageBoxParam *pInit)
{
 // Расстояние между кнопками, а также бордюр
 const int  nBorder = 11;

 UINT    uType = pInit->m_uType;
 RECT    rect;
 RECT    rectButton;
 int    nVisibleButtons = 0;
 int    nVisibleButtonsWidth = 0;
 HDC    hdcDlg;
 HWND    hwndText = ::GetDlgItem(hwndDlg, ID_MSGBOXTEXT);

 // Заголовок окна
 if (pInit->m_lpCaption)
   ::SetWindowText(hwndDlg, pInit->m_lpCaption);

 // Текст окна
 ::SetWindowText(hwndText, pInit->m_lpText);

 // Включаем нужные кнопки
 nVisibleButtons = _CustomMessageBoxShowButtons(hwndDlg, uType);

 // Устанавливаем иконку
 _CustomMessageBoxSetIcon(hwndDlg, uType);

 // Подсчитываем размер текста
 ::GetClientRect(hwndText, &rect);
 rect.top = rect.left = nBorder;
 rect.right += nBorder;
 rect.bottom = 0;

 hdcDlg = ::GetWindowDC(hwndDlg);
 ::DrawText(hdcDlg, pInit->m_lpText, -1, &rect,
        DT_LEFT | DT_EXPANDTABS | DT_WORDBREAK | DT_CALCRECT);
 ::ReleaseDC(hwndDlg, hdcDlg);

 ::SetWindowPos(hwndText, NULL, rect.left, rect.top,
   rect.right - rect.left, rect.bottom - rect.top,
   ((MB_ICONMASK & uType) ? SWP_NOMOVE : 0 )
   | SWP_NOZORDER | SWP_NOREDRAW | SWP_NOACTIVATE);

 if (MB_ICONMASK & uType)
 {
   int nIconHeight = ::GetSystemMetrics(SM_CYICON);
   if (rect.bottom - rect.top < nIconHeight)
     rect.bottom = rect.top + nIconHeight;
 }

 // Расставляем кнопки
 ::GetClientRect(::GetDlgItem(hwndDlg, IDOK), &rectButton);
 nVisibleButtonsWidth = (nVisibleButtons * (rectButton.right + nBorder));
 if (rect.right < nVisibleButtonsWidth)
 {
   rect.right = nVisibleButtonsWidth;
   _CustomMessageBoxInitPositionButtons(hwndDlg, nBorder, rect.bottom,
     nBorder + rectButton.right, (uType & MB_DEFMASK) >> 8);
 }
 else
 {
   _CustomMessageBoxInitPositionButtons(hwndDlg,
     (rect.right - nVisibleButtonsWidth) / 2, rect.bottom,
     nBorder + rectButton.right, (uType & MB_DEFMASK) >> 8);
 }

 // Пересчитываем размеры самого диалога
 rect.right += nBorder * 2;
 rect.bottom += (rectButton.bottom + nBorder * 2);

 ::AdjustWindowRectEx(&rect, ::GetWindowLong(hwndDlg, GWL_STYLE)
   , FALSE, ::GetWindowLong(hwndDlg, GWL_EXSTYLE));
 _CenterWindow(hwndDlg, &rect);

 return 0;
}


- и ни хрена не нашел на делфи  (теперь я понимаю почему они бедные люди), а потом уже я задал вопрос на форуме, а еще
через 15 минут и сам догнал


 
GrayFace ©   (2007-01-10 00:55) [10]

Впервые встречаю человека, который вначале гуглит, а потом спрашивает на форуме. Это ж нерационально, проще спросить и самому не мучаться. :)


 
Zorro2001 ©   (2007-01-10 02:40) [11]


> GrayFace ©   (10.01.07 00:55) [10]

форум последнее дело... сначала справка.. потом кцуча справочников.. потом поиск в тырнете.. а уже потом форум...
ИМХО.


 
Германн ©   (2007-01-10 02:59) [12]


> Zorro2001 ©   (10.01.07 02:40) [11]
>
>
> > GrayFace ©   (10.01.07 00:55) [10]
>
> форум последнее дело... сначала справка.. потом кцуча справочников.
> . потом поиск в тырнете.. а уже потом форум...
> ИМХО.
>

Твоими бы молитвами! Да только "среднестатистические" идут другими путями.


 
Desdechado ©   (2007-01-10 11:26) [13]

> Сперва я открыл справку и не хрена не понял так, как там языком Била Гейтса написано было
Ты бы почитал встроенную справку, там языком David Intersimone написано. Гораздо понятнее.



Страницы: 1 вся ветка

Текущий архив: 2007.01.28;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
1-1164875052
MetalFan
2006-11-30 11:24
2007.01.28
IHMTLDocument2.write


2-1168257030
Marvin
2007-01-08 14:50
2007.01.28
работа с tmemo


15-1168344143
Какондекалло
2007-01-09 15:02
2007.01.28
Централизованное тестирование! Пример


15-1168029800
ZiTRaX
2007-01-05 23:43
2007.01.28
Просто под впечатлением от прочитанного...


15-1167474376
IMHO
2006-12-30 13:26
2007.01.28
MS Word и кубковые сетки