forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   C++ (http://forum.boolean.name/forumdisplay.php?f=22)
-   -   Удаление рисунка (http://forum.boolean.name/showthread.php?t=12930)

.Squid 16.07.2010 02:42

Ответ: Удаление рисунка
 
По-моему, тебе теорию читать надо перед сном до полного понимая, а не наобум клавиши тыкать.

impersonalis 16.07.2010 10:20

Ответ: Удаление рисунка
 
Цитата:

Сообщение от pax (Сообщение 154939)
Ну для этого надо создать таймер, который будет каждые 100 мс делать вызов OnPaint. В Net перерисовка формы вызывается функцией Invalidate. Поищи, может тоже самое есть и в MFC.

не то советуешь. Стоит прописать макросы "таблица сообщений", тогда ОС будет посылать событие приложению в нужный момент. А дрюкать 10 раз в секунду перерисовку - не фонтан для прикладной проги.

impersonalis 16.07.2010 10:54

Ответ: Удаление рисунка
 
Код:

#include<afxwin.h>
#include<stdlib.h>
#include"resource.h"
//created by imper


class CMyDialog:public CDialog
{
private:
        bool FLAG;
public:
        CMyDialog::CMyDialog():CDialog(IDD_DIALOG1){
                this->FLAG=false;       
        }
        afx_msg void OnPaint();
        afx_msg void ChangeFlag();
        BOOL OnInitDialog();
        DECLARE_MESSAGE_MAP()
};
class CMyApp:public CWinApp
{
public:
        virtual BOOL InitInstance();
};
BOOL CMyApp::InitInstance()
{
        SetDialogBkColor(RGB(192,192,192),RGB(0,0,0));
        CMyDialog dialog;
        m_pMainWnd=& dialog;
        dialog.DoModal();

        return FALSE;
}
BEGIN_MESSAGE_MAP(CMyDialog,CDialog)
ON_WM_PAINT()
ON_COMMAND(IDC_BUT_CHNGFLG,ChangeFlag)
END_MESSAGE_MAP()
BOOL CMyDialog::OnInitDialog()
{InvalidateRect(NULL);


        CDialog::OnInitDialog();


        return TRUE;
}

void CMyDialog::ChangeFlag(){
        this->FLAG=!this->FLAG;
        this->InvalidateRect(NULL);
}

void CMyDialog::OnPaint(){
        CPaintDC dc(this);
        if(this->FLAG){
                dc.TextOut(10,10,"йопта!");
        }

}

CMyApp MyApp;

код жоскей - сам причиши, что нужно

pax 16.07.2010 13:30

Ответ: Удаление рисунка
 
Цитата:

Сообщение от impersonalis (Сообщение 154952)
не то советуешь. Стоит прописать макросы "таблица сообщений", тогда ОС будет посылать событие приложению в нужный момент. А дрюкать 10 раз в секунду перерисовку - не фонтан для прикладной проги.

Про макросы таблицы сообщений не знал. Спасибо за пояснение техники.
А вообще кто его знает зачем он Sleep(100) использовал. Может он игру на GDI хочет написать, он же об этом не упомянул :pardon:

den 16.07.2010 15:28

Ответ: Удаление рисунка
 
Цитата:

Может он игру на GDI хочет написать, он же об этом не упомянул
:-D ага, уже сценарий пишу! :-D


Часовой пояс GMT +4, время: 10:08.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot