C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Загрузочное Лого  (Прочитано 1079 раз)
Tanker1234
новенький


Сказали спасибо: +0/-0
Offline

Сообщений: 1


Загрузочное Лого
« : 14 Сентябрь 2016, 01:25:59 »

Доброе время суток, если пишу не туда или не по теме форума то извините... просто ищу ответ
Видел на форуме несколько тем про прозрачные сплешь (.bmp) при загрузке программы но я так и не вкурил как оно там работает, поэтому прошу вашей помощи

собственно вот сам код

Код
BOOL CALLBACK SplashDialogProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam )
{
return 0;
}
static HWND hWndSplash = NULL;
void InitSplash( const TCHAR* Filename )
{
guard(InitSplash);
   HBITMAP hBitmap    = NULL;
   INT     BitmapX    = 0;
   INT     BitmapY    = 0;
 
FWindowsBitmap Bitmap(1);
 
if( Filename )
   {
verify(Bitmap.LoadFile(Filename) );
hBitmap = Bitmap.GetBitmapHandle();
BitmapX = Bitmap.SizeX;
BitmapY = Bitmap.SizeY;
}
 
hWndSplash = TCHAR_CALL_OS(CreateDialogW(hInstance,MAKEINTRESOURCEW(IDDIALOG_Splash), NULL, SplashDialogProc),CreateDialogA(hInstance, MAKEINTRESOURCEA(IDDIALOG_Splash), NULL, SplashDialogProc) );
if( hWndSplash )
{
HWND hWndLogo = GetDlgItem(hWndSplash,IDC_Logo);
if( hWndLogo )
{
SetWindowPos(hWndSplash,HWND_TOPMOST,(GetSystemMetrics(SM_CXSCREEN)-BitmapX)/2,(GetSystemMetrics(SM_CYSCREEN)-BitmapY)/2,BitmapX,BitmapY,SWP_SHOWWINDOW);
SetWindowPos(hWndSplash,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
SendMessageX( hWndLogo, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap );
UpdateWindow( hWndSplash );
}
}
unguard;
}
void ExitSplash()
{
guard(ExitSplash);
DestroyWindow( hWndSplash );
unguard;
}

Код
               UBOOL ShowLog = ParseParam(appCmdLine(),TEXT("log"));
if( !ShowLog && !ParseParam(appCmdLine(),TEXT("server")) )
InitSplash( TEXT("EdSplash.bmp") );
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.18 секунд. Запросов: 19.