Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рисование bitmap на форме 
:(
    Опции темы
TheVad
Дата 9.4.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



пробывал я это делать.. форма все равно пуста..
PM MAIL   Вверх
Fixin
Дата 9.4.2006, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Не знаю, може на диалоге как-то по-другому рисуется... Я за неимением диалога создал обычное окно и все работало.
PM MAIL ICQ   Вверх
TheVad
Дата 9.4.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ясно, спасибо
Т.Е. ты с помощью кода окно создал да?

Это сообщение отредактировал(а) TheVad - 9.4.2006, 21:51
PM MAIL   Вверх
Fixin
Дата 9.4.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



да
Добавлено @ 22:04
Сам код:
Код

#include <windows.h>
#include <windowsx.h>    

static HINSTANCE hinst = NULL;    
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam);

TCHAR szAppName[] = "D3D";
HWND hMainWindow;
HINSTANCE hMainInstance;
HBITMAP Bitmap;    
void Window_OnPaint(HWND hwnd)    
{    
    int CoordX = 0, CoordY = 0;    
    PAINTSTRUCT PaintStruct;    
    BITMAP bm;    
    HDC PaintDC = BeginPaint(hwnd, &PaintStruct);    
    HDC PicDC = CreateCompatibleDC(PaintDC);    
    HBITMAP OldBitmap = SelectBitmap(PicDC, Bitmap);    
    GetObject(Bitmap, sizeof(BITMAP), &bm);    
    BitBlt(PaintDC, CoordX, CoordY, bm.bmWidth, bm.bmHeight, PicDC, 0, 0, SRCCOPY);    
    SelectObject(PicDC, OldBitmap);    
    DeleteDC(PicDC);    
    EndPaint(hwnd, &PaintStruct);    
}    
void Window_OnCreate(HWND hwnd,CREATESTRUCT* pCreateStruct)    
{    
    Bitmap = LoadBitmap(pCreateStruct->hInstance,"bitmap1");
}    
void Window_OnDestroy(HWND hwnd)    
{    
    DeleteObject(Bitmap);    
    PostQuitMessage(0);
}    
/////    
int WINAPI WinMain(HINSTANCE hInst,HINSTANCE, LPSTR lpTemplate , int nCmdShow)    
{    
    MSG Msg;
    WNDCLASSEX WndClass;    

    WndClass.cbSize            =    sizeof(WNDCLASSEX);
    WndClass.style            =    0;
    WndClass.lpfnWndProc    =    WndProc;
    WndClass.cbClsExtra        =    0;
    WndClass.cbWndExtra        =    0;
    WndClass.hInstance        =    hInst;
    WndClass.hIcon            =    LoadIcon(NULL, IDI_APPLICATION);
    WndClass.hIconSm        =    LoadIcon(NULL, IDI_APPLICATION);
    WndClass.hCursor        =    LoadCursor(NULL, IDC_ARROW);
    WndClass.hbrBackground    =    (HBRUSH)(COLOR_BTNFACE+1);
    WndClass.lpszMenuName    =    NULL;
    WndClass.lpszClassName    =    szAppName;

    if (!RegisterClassEx(&WndClass))
        return -1;

    hMainWindow = CreateWindow(szAppName, szAppName,
                    WS_OVERLAPPEDWINDOW,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    CW_USEDEFAULT, CW_USEDEFAULT,
                    NULL, NULL, hInst, NULL);

    if (hMainWindow == NULL)
        return -2;

    ShowWindow(hMainWindow, nCmdShow);
    UpdateWindow(hMainWindow);

    while (GetMessage(&Msg, NULL, 0, 0))
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }


    return (int)Msg.wParam;
}    

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{    
    switch(Message)    
    {    
    case WM_CREATE:    
    Window_OnCreate(hwnd, (CREATESTRUCT*) lParam);    
         
        break;    
    case WM_PAINT:    
        Window_OnPaint(hwnd);    
        break;    
    case WM_DESTROY:    
        Window_OnDestroy(hwnd);    
        break;    
    default:
        return DefWindowProc(hwnd, Message, wParam, lParam);
   };    
    return 0;    
}

Ресурс:
Код

Bitmap1 BITMAP "1.bmp"



PM MAIL ICQ   Вверх
TheVad
Дата 9.4.2006, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Две ошибки:
usebitmap\usebitmap.rc(82): error RC2135 : file not found: 1252
usebitmap\usebitmap.rc(39): error RC2135 : file not found: LANGUAGE
ресурс файл:
Код

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Russian resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDC_BITMAP1             BITMAP                  "1.bmp"
#endif    // Russian resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
#pragma code_page(1252)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED


PM MAIL   Вверх
TheVad
Дата 10.4.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ВСЕ разобрался как сделать СПАСИБО ОГРОМНОЕ!
Но если кто то знает как через диалог тоже самое сделать, буду рад информации.
PM MAIL   Вверх
Fixin
Дата 10.4.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Вообще-то, на диалоге можно разместить элемент для отображения битмапы из рисурсов. (по-другому, это просто на диалоге CONTROL "static" со свойством SS_BITMAP и именем ресурса-картинки на месте текста).
Код

Bitamp1 BITMAP "1.bmp"
CONTROL "Bitmap1", -1, "STATIC",  SS_BITMAP |WS_CHILD|WS_VISIBLE, 0, 0, -1, -1
Первые две координаты - понятно что обозначают, а полседние две (в случае иконкиЮ а в случае картинки не уверен) игнорируются. Ты используешь встроенный редактор ресурсов, там проще. Я привел вариант для ручного создания элемента на диалоге.
PM MAIL ICQ   Вверх
TheVad
Дата 10.4.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

CONTROL "Bitmap1", -1, "STATIC",  SS_BITMAP |WS_CHILD|WS_VISIBLE, 0, 0, -1, -1

ругается на -1 на все, и если -1(все) закомментировать , тогда ругается на "Bitmap1"
PM MAIL   Вверх
Fixin
Дата 10.4.2006, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Цитата(TheVad @ 10.4.2006, 19:02 Найти цитируемый пост)
ругается
Я не совсем телепат, приведи ошибку.

PM MAIL ICQ   Вверх
TheVad
Дата 10.4.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



SeaFight.rc(68): error RC2135 : file not found: -1
Вот она.

PM MAIL   Вверх
Fixin
Дата 10.4.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Цитата(TheVad @ 10.4.2006, 19:58 Найти цитируемый пост)
SeaFight.rc
Покажи

PM MAIL ICQ   Вверх
TheVad
Дата 10.4.2006, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

/ Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// Russian resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)
#ifdef _WIN32
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
#pragma code_page(1251)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_DIALOG1 DIALOGEX 0, 0, 591, 314
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | 
    WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_TOPMOST | WS_EX_STATICEDGE
CAPTION "Dialog"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    GROUPBOX        "Barberan",IDC_STATIC,293,62,274,245
    GROUPBOX        "Vad",IDC_STATIC,7,62,274,245
END


/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO 
BEGIN
    IDD_DIALOG1, DIALOG
    BEGIN
        LEFTMARGIN, 7
        TOPMARGIN, 7
        BOTTOMMARGIN, 307
    END
END
#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDB_EMPY                BITMAP                  "bitmap1.bmp"
IDB_SHIP                BITMAP                  "bitmap2.bmp"
IDB_RIP                 BITMAP                  "bmp00001.bmp"
BITMAP1                 BITMAP                  "bitmap1.bmp"
CONTROL "Bitmap1", -1, "STATIC",  SS_BITMAP |WS_CHILD|WS_VISIBLE, 0, 0, -1, -1

#endif    // Russian resources
/////////////////////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////////////////////////////
// English (U.S.) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
#endif //_WIN32

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE 
BEGIN
    "resource.h\0"
END

2 TEXTINCLUDE 
BEGIN
    "#include ""afxres.h""\r\n"
    "\0"
END

3 TEXTINCLUDE 
BEGIN
    "\r\n"
    "\0"
END

#endif    // APSTUDIO_INVOKED

#endif    // English (U.S.) resources
/////////////////////////////////////////////////////////////////////////////



#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//


/////////////////////////////////////////////////////////////////////////////
#endif    // not APSTUDIO_INVOKED



PM MAIL   Вверх
Fixin
Дата 10.4.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

Репутация: 8
Всего: 18



Код

BITMAP1                 BITMAP                  "bitmap1.bmp"    
CONTROL "Bitmap1", -1, "STATIC",  SS_BITMAP |WS_CHILD|WS_VISIBLE, 0, 0, -1, -1
smile smile smile smile smile smile smile smile smile smile Щас уржусь! Я для примера привел тогда... CONTROL - элемент диалога! smile

Код

IDD_DIALOG1 DIALOGEX 0, 0, 591, 314    
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP |    
    WS_CAPTION | WS_SYSMENU    
EXSTYLE WS_EX_TOPMOST | WS_EX_STATICEDGE    
CAPTION "Dialog"    
FONT 8, "MS Shell Dlg", 400, 0, 0x1    
BEGIN    
    GROUPBOX        "Barberan",IDC_STATIC,293,62,274,245    
    GROUPBOX        "Vad",IDC_STATIC,7,62,274,245    
    CONTROL "Bitmap1", -1, "STATIC",  SS_BITMAP |WS_CHILD|WS_VISIBLE, 0, 0, -1, -1
END

PM MAIL ICQ   Вверх
TheVad
Дата 10.4.2006, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ААА сламерил!!Теперь все заработало, спасибо огромное за терпеливость, и хорошие обоснованные ответы!! Пожизненно благодарен тебе!

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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