Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отловить сообщение WM_PAINT в WM, Как?? 
:(
    Опции темы
Sunvas
Дата 6.10.2007, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Есть кусок кода:
Код

    protected override void WndProc(ref Message m)
    {
            switch(m.Msg)
            {
       case WM_PAINT: //Ловим сообщение перерисовки

               break;

                default:
                break;
            }
            
    }

Как его перенести на WM??
Просто на WM нет
System.Windows.Forms.Message
Как лучше поступить? Что сделать?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
tol05
Дата 6.10.2007, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



как это "нет"? www.pinvoke.net, я же кидал когда-то эту ссылку
Цитата

private const UInt32 WM_PAINT          = 0x000F;


Код

protected override void WndProc(ref Message m)
    {
            switch(m.Msg)
            {
       case 0x000F: //Ловим сообщение перерисовки
               break;
                default:
                break;
            }
            
    }



--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Sunvas
Дата 6.10.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



tol05, ты меня неправильно понял.
WM - это Windows Mobile.
Так вот на WM нет System.Windows.Forms.Message


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
mr.DUDA
Дата 6.10.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Нужно посмотреть что приходит в WndProc, и есть ли вообще метод WndProc в контролах Windows Mobile. Достаточно просто удалить приведённый код метода и набрать: override WndProc (Enter).


--------------------
user posted image
PM MAIL WWW   Вверх
Sunvas
Дата 6.10.2007, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



После того, как я написал "protected override void" выскакивает небольшой список команд.. Из всего этого самое подходящее это OnPaint и OnPaintBackground.
Но, как ни пишу:

Хоть:
Код

namespace MyTextBox
{
public class MyTextBox : TextBox
{
public MyTextBox() 
{
}
protected override void OnPaintBackground(PaintEventArgs e)
{
base.OnPaintBackground(e);
e.Graphics.DrawRectangle(new Pen(Color.FromArgb(24, 180, 110)), 0, 0, 10, 10);
}
}
}


Хоть:
Код

namespace MyTextBox
{
public class MyTextBox : TextBox
{
public MyTextBox() 
{
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaintBackground(e);
e.Graphics.DrawRectangle(new Pen(Color.FromArgb(24, 180, 110)), 0, 0, 10, 10);
}
}
}

Толку нет.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
0000
Дата 6.10.2007, 22:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 11.7.2006
Где: Нижний Новгород

Репутация: 2
Всего: 5



добавь референс Microsoft.WindowsCE.Forms..
там есть классы Message и MessageWindow..
у Message есть статический метод Create..

создаешь свой класс, наследуешь его от MessageWindow, там можно поигаться с WndProc
так же у него есть метод SendMessage (ref Message m); - он полезет в WndProc..

и еще тебе в помощь - http://www.christec.co.nz/blog/archives/97
PM MAIL ICQ   Вверх
tol05
Дата 6.10.2007, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



мда, не думал, что в WM все так скудно.. Так можно и свой враппер для API создать (как я обычно и делал) и вызывать SendMessage() да SetWindowsHook()...
Короче, PINvoke снова рулит. smile


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
mr.DUDA
Дата 6.10.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Sunvas, раз нет перекрываемого метода WndProc, значит только вариант 0000 прокатит.


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0517 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.