Форум: Форум C++Разное
Новые темы: 00
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: У меня есть всё! кроме мозгов... ИЛИ касота и Си++ Builder 6
 
 автор: ~AquaZ~   (14.01.2010 в 16:51)   письмо автору
223.2 Кб
 
 

Здравствуйте. Я как всегда с вопросом. В Си++ Builder все компоненты имеют ужасный графический интерфейс, если это интерфейсом можно назвать. Как сделать свой интерфейс, вот что у меня есть
Фотка тупой проги - хочу такую прозрачность!                                                                                |-------------------------->
DLL-файлик с картинками, из которых я хочу склепать фейс                                                                    |
Дерево ресурсов этого файлика                                                                                               |
Вот ------------------------------------------------------------------------------------------------------------------------|

  Ответить  
 
 автор: EXP   (14.01.2010 в 19:30)   письмо автору
 
   для: ~AquaZ~   (14.01.2010 в 16:51)
 

не смотрел картинку , и незнаю как в Borland
, но прозрачность это нужно создать окно со стилем WS_EX_LAYERED
(только для главного окна)
и вызвать SetLayeredWindowAttributes()

а с ресурсами обычно вызывается LoadLibrary('эту длл') потом с помощью её хэндла достают ресурсы
, например при создании окна можно так достать иконку 1111 из netshell.dll

#define _WIN32_WINNT 0x0500 
//приходится объявлять в MSVC для всяких украшательств
#include <windows.h>

#pragma comment(linker, "/ENTRY:EntryPoint"// no main
char wTitle[]  ="xWinClass";
WNDCLASSEX wc = {sizeof(wc), CS_HREDRAW|CS_VREDRAW
, 0, 0, 0
, 0, 0, 0
, (HBRUSH) 6, 0, wTitle, 0};
HWND hWnd;
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return DefWindowProc(hwnd,message,wParam,lParam);
}
int EntryPoint() {
HANDLE hLibrary;
MSG msg;

if( (hLibrary = LoadLibraryEx("netshell.dll", NULL, LOAD_LIBRARY_AS_DATAFILE )) == NULL )
    MessageBox( 0, "Error Loading File - Choose a 32bit DLL or EXE""!!!", MB_OK );

wc.hInstance= GetModuleHandle(NULL);
wc.hIcon= LoadIcon(hLibrary, (LPCSTR) 1111);
wc.hCursor= LoadCursor(NULL, IDC_ARROW);
wc.lpfnWndProc= WndProc;

 RegisterClassEx(&wc);
 hWnd = CreateWindowEx(
 WS_EX_LAYERED
 ,wTitle ,wTitle
 ,WS_OVERLAPPEDWINDOW|WS_CAPTION| WS_DLGFRAME,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
0,0, (HINSTANCE) 0x400000,0);

SetLayeredWindowAttributes(hWnd,
    0, // COLORREF crKey,
    0xA0, //  прозрачность  0-255 BYTE bAlpha,
    LWA_ALPHA   //  |LWA_COLORKEY  DWORD dwFlags
);
ShowWindow(hWnd, SW_SHOWNORMAL);

while (GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
   ExitProcess( (UINT) msg.wParam );
return 0;
}


или есть The LoadImage function loads an icon, cursor, animated cursor, or bitmap.
HANDLE LoadImage( HINSTANCE hinst,
LPCTSTR lpszName,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuLoad
);
или ещё какие-то

  Ответить  
 
 автор: ~AquaZ~   (14.01.2010 в 19:52)   письмо автору
 
   для: EXP   (14.01.2010 в 19:30)
 

Спасибо за помощь, хотя диБилдер компилировать не хочет, видит unsolved external. Можно скриншот :) ?
[upd] Выкурил кусочек из примера. Я просто неправильно объяснил - посмотри картинку из аттача первого сообщения.

  Ответить  
 
 автор: EXP   (15.01.2010 в 01:56)   письмо автору
1.2 Кб
 
   для: ~AquaZ~   (14.01.2010 в 19:52)
 

у меня по началу на такие константы ругалось
#define WS_EX_COMPOSITED 0x02000000L
#define WS_EX_LAYERED 0x80000
#define LWA_ALPHA 0x02


, если не делал
#define _WIN32_WINNT 0x0500
выше
#include <windows.h>
, но незнаю чего там в WinUser.h у борланда

,ехе файл поменьше скриншота весит
, только заметил здесь не скачиваются архивы.7z
а открываются текстом, и надо юзать контекстное меню ссылки или сохранять страницу как 7z

// UPD
Dll посмотрел , ресурсы есть ,) только зависимость от какой-то СС3260.DLL , которой у меня нет
, и сильно подебажить не получилось :)

из СС3260.DLL такие функции экспортирует
@_InitTermAndUnexPtrs$qv
__argv_default_expand
___CRTL_MEM_UseBorMM
___CRTL_TLS_Alloc
___CRTL_TLS_ExitThread
___CRTL_TLS_Free
___CRTL_TLS_GetValue
___CRTL_TLS_InitThread
___CRTL_TLS_SetValue
__ErrorExit
__ErrorMessage
__free_heaps
__handle_exitargv
__handle_setargv
__handle_wexitargv
__handle_wsetargv
_memcpy
__startupd
__wargv_default_expand

из kernel32.dll такие
FreeLibrary
GetModuleHandleA
GetProcAddress
GetProcessHeap
GetVersion
HeapAlloc
HeapFree
LoadLibraryA

А насчёт картинок , пока не понял обычное там главное окно или диалоговое
, У меня классическая стоит , где-то валяются вистовые темы, нужно их поставить и попробовать чео-нибудь такое.
А так я тоже не сильно понял как красоту в окнах наводить :) моя пока единственная программка размером чтобы уместилось пару строк :)

  Ответить  
 
 автор: ~AquaZ~   (15.01.2010 в 12:47)   письмо автору
403 Кб
 
   для: EXP   (15.01.2010 в 01:56)
 

Спасибо, интересно. А насчёт DLL-ки, я просто пустую скомпилировал, а потом Restorator'ом залил картинки.
А насчёт архивы не скачиваются, а текстом открываются, это у тебя браузер такой, Опера называется :)
З.Ы. Архив - не 7z, а ZIP.
[upd] Перекомпилировал и набил ресурсами. Вот ------------------------------------------>

  Ответить  
 
 автор: ~AquaZ~   (15.01.2010 в 13:25)   письмо автору
267 Кб
 
   для: ~AquaZ~   (15.01.2010 в 12:47)
 

Самое прозрачное приложение ------------------------------------------------------------>
[upd] Прозрачность сделал, просто поставив Билдер 2009. Но вот как сделать красивый интерфейс...

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования