Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Разрешение рабочего стола


Автор: Solomon 4.12.2006, 16:48
Знач проблема в следующем...

изменить я разрешение рабочего стола могу 

Код

    DEVMODE dm;

    ShowMessage(dm.dmSize);
    dm.dmPelsWidth = 1024;
    dm.dmPelsHeight = 768;  
    dm.dmDisplayFrequency=75;
    dm.dmFields = DM_PELSWIDTH |DM_PELSHEIGHT | DM_DISPLAYFREQUENCY;

но... мне надо сохранить действительное разрешение, что бы можно было восстановить его после завершения работы приложениея...
 когда я делаю так 

Код

    WinBuffer.X=dm.dmPelsWidth;
    WinBuffer.Y=dm.dmPelsHeight;
    WinBuffer.Hz=dm.dmDisplayFrequency; 

где 

Код

    struct WinBuffer
    {
        DWORD X;
        DWORD Y;
        DWORD Hz;
    };


он мне выдает гору ошибок

Добавлено @ 16:55 
warning C4832: token '.' is illegal after UDT 'QGLWindow::WinBuffer'

помоему ошибка не там где я думал... че вот это за варнинг, кто расскажит... (WinBuffer у меня выше принадежит класу 
QGLWindow)

Автор: JackYF 4.12.2006, 16:57
Цитата(Solomon @  4.12.2006,  16:48 Найти цитируемый пост)
он мне выдает гору ошибок 


Скажешь каких?

Автор: Solomon 4.12.2006, 17:03
Цитата

warning C4832: token '.' is illegal after UDT 'QGLWindow::WinBuffe'
error C2274: 'function-style cast' : illegal as right side of '.' operator
error C2228: left of '.X' must have class/struct/union type


и так на каждую переменную... это не из-за того что я пытаюсь считать в ней переменную, а вот из-за чего... (

Добавлено @ 17:05 
Цитата

Compiler Warning (level 1) C4832  

Error Message 
token 'token' is illegal after UDT 'type name'


A member of a UDT (user-defined type, such a class or struct) was qualified incorrectly. The compiler issues this warning and proceeds as if the qualification was specified correctly.

The following sample generates C4832:



вот что пишут в MSDN по поводу варнинга... все проблема в этом я думаю

Автор: Arks 4.12.2006, 17:11
Ты написал некорректно. Надо после описания структуры:
Код
struct
{
 DWORD X;
 DWORD Y;
 DWORD Hz;
} WinBuffer;

Автор: JackYF 4.12.2006, 17:11
WinBuffer - это у тебя имя структуры. Тебе нужно объявить объект типа WinBuffer:

Код

struct WinBuffer
    {
        DWORD X;
        DWORD Y;
        DWORD Hz;
    };
...
WinBuffer wbuf;
wbuf.X=dm.dmPelsWidth;
wbuf.Y=dm.dmPelsHeight;
wbuf.Hz=dm.dmDisplayFrequency; 


Добавлено @ 17:13 
Arks, в твоем коде нужна завершаюшая ";".

Автор: Arks 4.12.2006, 17:19
Цитата(JackYF @ 4.12.2006,  17:11)
Добавлено @ 17:13 
Arks, в твоем коде нужна завершаюшая ";".

Чего по мелочам прикапываешься, может она на следующей строчке стояла  smile 

Автор: Solomon 4.12.2006, 17:24
Arks, дякую, так нормально работает

JackYF, Да неа там все нормально на этот счет .. протсо я немного переделал, что бы понятнее было... вообще то там у меня  так

    my.Window.WinBuffer.X=dm.dmPelsWidth;    
    my.Window.WinBuffer.Y=dm.dmPelsHeight;    
    my.Window.WinBuffer.Hz=dm.dmDisplayFrequency; 

Автор: JackYF 4.12.2006, 17:29
Цитата(Arks @  4.12.2006,  17:19 Найти цитируемый пост)
Чего по мелочам прикапываешься, может она на следующей строчке стояла  smile 


Может, и стояла... smile А может и нет. Я же не телепат.
Главное, что теперь точно стоит.  smile 

Автор: Solomon 4.12.2006, 17:36
Так ну ладно это проехали.. но всже... как мне культурно считать координаты окна чтобы потом их восстановить...
тошо поменять то меняняется, а вот назад нивкакую чтот не хотит  smile  

Автор: JackYF 4.12.2006, 18:20
Цитата(Solomon @  4.12.2006,  17:36 Найти цитируемый пост)
а вот назад нивкакую чтот не хотит  smile  

и опять код в студию...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)