пол дня пытаюсь установить созданое окошечко посреди екрана....и что думаете - не выходит) - неужели не реально без "хака" - функции - спасиб! читал гдето про - SS_CENTER, говорили что устанавливает по центру - у меня нет перепробовал /перечитал многое - главное что не зря,теперь многое "по дороге" узнал) Код (Text): windowsclass.cbSize = sizeof(windowsclass); windowsclass.style = CS_OWNDC; windowsclass.lpfnWndProc = MainWinProc; windowsclass.cbClsExtra = 0; windowsclass.cbWndExtra = 0; windowsclass.hInstance = hInstance; windowsclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); windowsclass.hCursor = LoadCursor(NULL, IDC_ARROW); windowsclass.hbrBackground = (HBRUSH)GetStockObject(NULL_PEN); windowsclass.lpszMenuName = NULL; windowsclass.lpszClassName = cName; windowsclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&windowsclass); hwnd = CreateWindowEx(WS_EX_LAYERED , cName, wName, WS_VISIBLE | WS_POPUPWINDOW | SS_CENTER, CW_USEDEFAULT, CW_USEDEFAULT, 450, 550, NULL, NULL, hInstance, NULL); clref = RGB(100, 50, 100); SetLayeredWindowAttributes( hwnd, clref, 150, LWA_ALPHA); ShowWindow(hwnd, nShowCmd); UpdateWindow(hwnd); подскажите плз - запарился искать(
Код (Text): ;---------- [Center the window] ---------- INVOKE GetSystemMetrics, SM_CXSCREEN sub eax, 450 shr eax, 1 push eax INVOKE GetSystemMetrics, SM_CYSCREEN sub eax, 550 shr eax, 1 pop ebx INVOKE CreateWindowEx, WS_EX_LAYERED, addr cName, addr wName,\ WS_VISIBLE or WS_POPUPWINDOW or CW_USEDEFAULT,\ ebx, eax, 450, 550, 0, 0, hInstance, 0 mov hwnd, eax
да етот случай я решил оставить на крайняк! - спасибо, АПИ не знал какие юзать. А повесить на плечи винды никак?
спс но ето видел уже - ничего не меняется(((( dwExStyle - WS_EX_DLGMODALFRAME ... dwStyle - DS_CENTER x,y - 0; не пойму что за ... смысл в том что мне даже сам по себе WS_EX_DLGMODALFRAME не подходит - нужно окошко без титла (WS_POPUP) и еще + к етому всему - WS_EX_LAYERED, прозрачность нужна, хотя на крайний случай,думаю смогу отказатся - но задача - УСТАНОВИТЬ ОКОШКО ПО ЦЕНТРУ и без титла - есть еще варианты?
sometime DS_CENTER - для диалога, а не для окна что ты создаёшь "ручками"... центруй самостоятельно окно или юзай диалог чтобы приспособить DS_CENTER
Asterix пока найти не могу, но полюбэ спс - там смотрел,правда быстренько давно еще, тепер более тчательно просмотрю! serj у тебя так работает??? - у меня нет, такое ощущение что я гдет в другом)) месте запорол что оно центроватся не хочет)) x0man так в том то и фокус что оно не для меня и SS_CENTER как я гдето вычитал тоже не для окна обычного(-биология)))) 2ALL - свалу нет придется центровать самому, не хотелось - но увы....будет лишний кодец. хорошо что только при старте проги)) ну и теперь продолжаем)- никто не пробовал методами винды вырезать с бмп,например - белый цвет??? - вручную делаю,но там немного заплётов получается если цветов много на картинке,края то чуток поплывшие(не чистые цвета и не белый,но их не хочется видеть)......мммда - вообще не в тему сказано ,но мож кто по дороге подскажет. хотелось бы узнать как в дельфи и в билдер тоже - в классе TBitmap есть TransperentColor - там получше вырезало чем я ща режу двумя форами))))
djmans спасиб, буду знать)) - хотя и так думал что тут чёт не так: SS_ а не WS_ Asterix ну ты красава, искал я искал,правда вручную) - и залип совсем не на том))) СПАСИБО!!!! иду учится дальше при возникновении вопросов - обращусь
kero давай без *техсамых -хорошо что ориентируешся хароша на ваСме,а я пока нет!! //а ссылки никогда лишними не бывают, если задал вопрос - значит искал и не нашел! -сказал бы и тебе спасибо, но увы нету желания!!!
Да, извините, глупость сказал. sometime, а зачем работать с цветами ... сделать прозрачный фон? Код (Text): SetBmpColor proc hBitmap:DWORD LOCAL mDC :DWORD LOCAL hBrush :DWORD LOCAL hOldBmp :DWORD LOCAL hReturn :DWORD LOCAL hOldBrush :DWORD invoke CreateCompatibleDC,NULL mov mDC,eax invoke SelectObject,mDC,hBitmap mov hOldBmp,eax invoke GetSysColor,COLOR_BTNFACE invoke CreateSolidBrush,eax mov hBrush,eax invoke SelectObject,mDC,hBrush mov hOldBrush,eax invoke GetPixel,mDC,1,1 invoke ExtFloodFill,mDC,1,1,eax,FLOODFILLSURFACE invoke SelectObject,mDC,hOldBrush invoke DeleteObject,hBrush invoke SelectObject,mDC,hBitmap mov hReturn,eax invoke DeleteDC,mDC mov eax,hReturn ret SetBmpColor endp
serj спасибо что не поленился дать пример кода..... а еще теперь буду знать что такое "залить" в паинте) - но оо паходу не подходит,мельком прочитал МСДН и не нашел браш - с регулировкой альфы - видимо ты не правильно понял или я не правильно объяснил) - но в любом случае я рад что теперь знаю еще++ апишек для работы с графикой) задача - создано прозрачное окно(WS_EX_LAYERED) на него вывожу изображение , и надо чтобы фон БПМ-шки удалился ровно и без "прыщиков" - побочных ефектов вокруг буквочек. Вот например буквочка чисто синяя(в паинте) но после сохранения получаются вокруг нее оттенки синего+цвет фона ,которые при удалении фона(белого) остаются,но зато при оставлении синих буквочек - удаляются)). Ет я расказал что у меня получается при помощи двух форов и if-a. Теперь я точно знаю - все у меня в руках, точнее на моих плечах - в руках только мышка)) и в конечном итоге у меня получается окно произвольной формы - в даном варианте буквочки. Но блин если нарисую произвольную форму с 50 разны цветов(например) - то надо будет в if -е &&-ов 50 ставить)))) - вот и решил спросить мож винда с "умными) апишками подумала о таких как я) тут спасиб,работен дальше... ПС - ха,вспомнил - прогнал себе сегодня мыслю: читал на форуме гдето вопросик " как нарисовать на десктопе,НО так что бы иконки отображались поверху моих рисований") подумал над етим вопросом и понял что надо рисовать не по десктопу а по самому валпепере в памяти, только вот как его найти мона - незнаю - читать много надо а так как ето задача только для развлечения и + к знаниям, то подумал что мона ненароком спросить тут - мож подскажет кто как добратся к поинтеру на валлпепер?)
Mikl___ -в поиске васма вбивал!! правда на руском и два слова сразу "сплэш окно" ....ничё не выдало. А по поводу гугла-знаю что такое и он первый в списках пользования. И как я говорил выше - начал искать ВРУЧНУЮ по васме,а точнее по урокам Iczelion'а!!! и попал на интересный урок, а пока читал то Asterix уже дал ссылку за что я ему благодарен. Ну а к тебе просьба - давай без умничества со мной общатся - не люблю я таких....хотя "" в конце твоего поста свидетельствует что ты с добрыми намеринеями, но сорри - не воспринемаю я твой пост в серьёз!
sometime Судя по тому что слова этот, экран и эффект ты пишешь как етот, екран и ефект -- русский язык для тебя не родной, но всё равно, писать нужно так, чтобы было понятно собеседникам -- что ты конкретно хочешь -- выввести полупрозрачное окно? Или цвет фона бмп -- сделать прозрачным? Или вывести рисунок/надпись поверх десктопа?