Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];

Вниз

А картиночку на 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.042 c
2-1168617866
Apachi
2007-01-12 19:04
2007.01.28
Работа с командной строкой


2-1168550672
Beavercrazy
2007-01-12 00:24
2007.01.28
Проблема при работе с Аксесовской таблицей


2-1168200765
AeroTm
2007-01-07 23:12
2007.01.28
Телнет


2-1168593143
vigo_
2007-01-12 12:12
2007.01.28
Вызов переменной из другого Unit a


2-1168586629
vitv
2007-01-12 10:23
2007.01.28
Выполнение 2-х запросов последовательно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский