не заполняется структура DATETIMEPICKERINFO помогите
От: ЛёХыЧ Россия  
Дата: 01.10.10 06:15
Оценка:
Описана структура
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
        public struct DATETIMEPICKERINFO
        {
            public uint cbSize;
            public RECT rcCheck;
            public uint stateCheck;
            public RECT rcButton;
            public uint stateButton;
            public IntPtr hwndEdit;
            public IntPtr hwndUD;
            public IntPtr hwndDropDown;
        }

импорт SendMessage из user32.dll
        [DllImport("user32.dll", CharSet = CharSet.Auto)]
        public static extern int SendMessage(IntPtr hWnd, APIsEnums.DateTimePickerMessage msg, int wParam, ref APIsStructs.DATETIMEPICKERINFO lParam);

ниже код проверяет если элемент DateTimePicker то заполняем структуру

           if (_control is DateTimePicker)
            {
                APIsStructs.DATETIMEPICKERINFO info = new APIsStructs.DATETIMEPICKERINFO();
                info.cbSize = (uint)Marshal.SizeOf(typeof(APIsStructs.DATETIMEPICKERINFO));
                
                APIsUser32.SendMessage(_control.Handle, APIsEnums.DateTimePickerMessage.DTM_GETDATETIMEPICKERINFO, 0, ref info);

                if (m.WParam == info.hwndDropDown || m.WParam == info.hwndEdit || m.WParam == info.hwndUD)
                {
                       ...
                       return false;
                }
            }

структура остается не заполненная, кроме cbSize ??
Re: не заполняется структура DATETIMEPICKERINFO помогите
От: ЛёХыЧ Россия  
Дата: 01.10.10 08:35
Оценка:
up
Re: не заполняется структура DATETIMEPICKERINFO помогите
От: toulon Россия  
Дата: 01.10.10 13:24
Оценка:
Здравствуйте, ЛёХыЧ, Вы писали:

если посмотреть сюда то можно увидеть

cbSize
DWORD
Set to sizeof(DATETIMEPICKERINFO). This member must be set before sending a pointer to this structure with the DTM_GETDATETIMEPICKERINFO message, or the DateTime_GetDateTimePickerInfo macro.


может в этом проблема
Re[2]: не заполняется структура DATETIMEPICKERINFO помогите
От: ЛёХыЧ Россия  
Дата: 02.10.10 00:06
Оценка:
Здравствуйте, toulon, Вы писали:

спасибо за ссылку но перед тем как написать здесь я ее прочитал.

может конечно я что то неправильно понял но там написано, что в структуре DATETIMEPICKERINFO должен быть установлен размер этой структуры в cbSize, мне показалась я это сделал вот этой строкой

info.cbSize = (uint)Marshal.SizeOf(typeof(APIsStructs.DATETIMEPICKERINFO));
Re: не заполняется структура DATETIMEPICKERINFO помогите
От: Pavel Dvorkin Россия  
Дата: 02.10.10 04:20
Оценка:
Здравствуйте, ЛёХыЧ, Вы писали:

ЛёХ>структура остается не заполненная, кроме cbSize ??


Версия Windows ?

DTM_GETDATETIMEPICKERINFO Message

Minimum operating systems Windows Vista
With best regards
Pavel Dvorkin
Re[2]: не заполняется структура DATETIMEPICKERINFO помогите
От: ЛёХыЧ Россия  
Дата: 02.10.10 05:22
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Версия Windows ?


Windows XP Sp3, сегодня проверю на windows 7.
Re[3]: не заполняется структура DATETIMEPICKERINFO помогите
От: toulon Россия  
Дата: 02.10.10 10:45
Оценка:
Здравствуйте, ЛёХыЧ, Вы писали:

ЛёХ>Здравствуйте, toulon, Вы писали:


ЛёХ>спасибо за ссылку но перед тем как написать здесь я ее прочитал.


ЛёХ>может конечно я что то неправильно понял но там написано, что в структуре DATETIMEPICKERINFO должен быть установлен размер этой структуры в cbSize, мне показалась я это сделал вот этой строкой


ЛёХ>
ЛёХ>info.cbSize = (uint)Marshal.SizeOf(typeof(APIsStructs.DATETIMEPICKERINFO));
ЛёХ>



извиняюсь, не заметил
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.