Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.116.21.229] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
как сделать в Static Text текст синего цвета, а не черного? и как бы лучше узнавать кликнули ли на этот статик контрол?
заранее спасибо. |
Сообщ.
#2
,
|
|
|
лови WM_CTLCOLOR...
ЗЫ. посмотри исходник CHyperLink, он почти везде есть, например на www.codeproject.com... |
Сообщ.
#3
,
|
|
|
да, вроде посмотрел я на codeproject.com - нет там в поиске. может есть прямая ссылка, а?
|
Сообщ.
#4
,
|
|
|
а... все нашел его здесь
http://www.sources.ru/cpp/cpp_hyperlink.shtml мне не понятно, почему так чудно работает поиск на этом сайте, если набрав в строке поиска ChyperLink, мне поисковик этого сайта выдал только мою тему? т.е. по тому, что есть на этом сайте, поиск не проводится? зы ссылку я нашел через ya.ru |
Сообщ.
#5
,
|
|
|
и, кстати, он чего только под MFC? мне как бы под читстый WinAPI надо бы.
|
Сообщ.
#6
,
|
|
|
ооооо!!!!! взываю к вам программеры ибо вопрос уже весит около недели!
|
Сообщ.
#7
,
|
|
|
Цитата мне как бы под читстый WinAPI надо бы. Дык, да обычно, сабклась статик, лови нужные сообщения и рисуй... |
Сообщ.
#8
,
|
|
|
как оказывается все просто. понимаешь, я еще не того уровня программер, когда могу понять такие ответы. мне надо пояснить, какие сообщения, чего на них делать надо, а MSDN я прочитать не могу заранее и все знать.
а что такое Цитата сабклась статик? |
Сообщ.
#9
,
|
|
|
Вот примерчик: (сделай в ресурсах диалог и помести на него статик с идентификатором IDC_MYSTATIC)
<br>#include <windows.h><br>#include "resource.h"<br><br>static HWND g_hStatic = NULL; // Хендл статика<br>static WNDPROC g_OldStaticWndProc = NULL; // Оригинальная оконная процедура для нашего статика<br><br>// "Наша" оконная процедура для статика<br>LRESULT CALLBACK StaticNewWndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)<br>{<br> static PAINTSTRUCT ps = {0};<br> switch(uMessage)<br> {<br> // Нарисуем что-нибудь на статике...<br> case WM_PAINT:<br> {<br> HDC hDC = BeginPaint(hWnd, &ps);<br> RECT rc = {0};<br> GetClientRect(hWnd, &rc);<br><br> FillRect(hDC, &rc, CreateSolidBrush(RGB(0, 0, 0)));<br><br> COLORREF crOld = SetTextColor(hDC, RGB(0, 255, 0));<br> int nBkOld = SetBkMode(hDC, TRANSPARENT);<br> <br> char sz[] = "My static";<br> DrawText(hDC, sz, -1, &rc, DT_CENTER);<br><br> SetBkMode(hDC, nBkOld);<br> SetTextColor(hDC, crOld);<br> EndPaint(hWnd, &ps);<br> } <br> return FALSE; <br><br> case WM_DESTROY: <br> // Возвращаем оригинальную процедуру<br> SetWindowLong(hWnd, GWL_WNDPROC, (LONG)g_OldStaticWndProc);<br> PostQuitMessage(0); <br> break;<br> }<br> <br> // Все другие сообшения обрабатываем оригинальной процедурой<br> return CallWindowProc(g_OldStaticWndProc, hWnd, uMessage, wParam, lParam); <br>}<br><br>BOOL CALLBACK DlgProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam)<br>{<br> switch(uMessage)<br> {<br> case WM_INITDIALOG:<br> // получаем хендл статика<br> g_hStatic = GetDlgItem(hDlg, IDC_MYSTATIC);<br> <br> // Сабкласим его т.е ставим новую оконную процедуру<br> g_OldStaticWndProc = (WNDPROC)SetWindowLong(g_hStatic, GWL_WNDPROC, (LONG)StaticNewWndProc);<br> if(!g_OldStaticWndProc) return FALSE;<br> <br> break;<br> <br> case WM_COMMAND:<br> switch(LOWORD(wParam))<br> {<br> case IDOK:<br> case IDCANCEL:<br> EndDialog(hDlg, 1);<br> return 0; <br> }<br> break;<br> <br> case WM_DESTROY: <br> DestroyWindow(g_hStatic);<br> break;<br> }<br> return FALSE;<br>}<br><br>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR szCmdLine, int nCmdShow)<br>{<br> DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)DlgProc);<br> return 0;<br>}<br> PS. если поставить статику стиль SS_NOTIFY, то в StaticNewWndProc() можно ловить WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP и тд... |
Сообщ.
#10
,
|
|
|
спасибо, а ты не объснишь в двух словах пример чего? :-/
|
Сообщ.
#11
,
|
|
|
а... ну, так примерно понятно. т.е. там просто цвет контрола меняется. понятно. а в зависимости от сообщения мышки мы его либо меняем либо нет? и это... как сделать подчеркнутым текст?
спасибо большое. |
Сообщ.
#12
,
|
|
|
Цитата EXPERIMENTER, 26.04.03, 18:48:33 а... ну, так примерно понятно. т.е. там просто цвет контрола меняется. понятно. а в зависимости от сообщения мышки мы его либо меняем либо нет? и это... как сделать подчеркнутым текст? спасибо большое. Ты исходник CHyperLink смотрел? Цитата LOGFONT lf; GetFont()->GetLogFont(&lf); lf.lfUnderline = (BYTE)m_bUnderline; // тобишь true или false m_Font.DeleteObject(); m_Font.CreateFontIndirect(&lf); SetFont(&m_Font); |
Сообщ.
#13
,
|
|
|
спасибо.
я, кстати, написал письмо автору CHyperLink. можете посмотреть, чего он мне ответил ;D Цитата Автор: "Chris Maunder" <chris@codeproject.com> Кому: "Iaoy Ineiia" <petik@rambler.ru> Копия: The version on those pages is an illegal and unauthorised copy of my article on www.codeproject.com. cheers Chris Maunder The Code Project www.codeproject.com > -----Original Message----- > From: Петя Осипов [mailto:petik@rambler.ru] > Sent: Saturday, April 26, 2003 1:10 AM > To: cmaunder@mail.com > Subject: CHyperLink > > > Dear Chris Maunder, > I've downloaded your class CHyperLink from here > http://www.sources.ru/cpp/cpp_hyperlink.shtml > It seems to be of a great help, but I was just wondering if I could use it without MFC. I mean, I need to use something > like your class for creating hyperlinks, but I am writing using only WinAPI. I would be really greatful if you answer my question. > Kind Regards, > Peter Ossipov. Надеюсь, я ни кому не доставил проблем. |
Сообщ.
#14
,
|
|
|
Цитата EXPERIMENTER, 27.04.03, 11:23:21 Надеюсь, я ни кому не доставил проблем. Я ж тебе говорил ищи на codeproject.com |
Сообщ.
#15
,
|
|
|
так я сейчас этим и занимаюсь. там черт ногу сломит.
|