replace the static control in wxMessageDialog with an edit control with a vertical scrollbar if the message box is too big to fit on the screen

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55544 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-09-11 10:39:49 +00:00
parent 6e42b980d9
commit 4b02d42e37
3 changed files with 309 additions and 98 deletions

View File

@@ -27,16 +27,34 @@ public:
virtual int ShowModal();
// implementation-specific
// return the font used for the text in the message box
static wxFont GetMessageFont();
private:
// hook procedure used to adjust the message box beyond what the standard
// MessageBox() function can do for us
static WXLRESULT wxCALLBACK HookFunction(int code, WXWPARAM, WXLPARAM);
static const struct ButtonAccessors
{
int id;
wxString (wxMessageDialog::*getter)() const;
} ms_buttons[];
// replace the static text control with a text control in order to show
// scrollbar (and also, incidentally, allow text selection)
void ReplaceStaticWithEdit();
// adjust the button labels
//
// this is called from HookFunction() and our HWND is valid at this moment
void AdjustButtonLabels();
// offset all buttons starting from the first one given by dx to the right
void OffsetButtonsStartingFrom(int first, int dx);
WXHANDLE m_hook; // HHOOK used to position the message box