Раздел посвящен программированию с использованием Power Basic.
	
		
		
			
			- 
				Smitis-R
			
 
			- 
				
 - Новичок

 
			
			- 
			
			
 
		-  
 
		- Сообщения: 48
 - Зарегистрирован: 26.04.2005 (Вт) 0:37
 
		
	
	
			
			
			
 Smitis-R » 05.01.2007 (Пт) 22:27 
			
			Вывод подсказки при наведении курсора на элемент формы:
- Код: Выделить всё
 #COMPILE EXE
#DIM ALL
#INCLUDE "WIN32API.INC"
%DLG_DIALOG1 =  101
%BTN_BUTTON1 = 1001
%BTN_BUTTON2 = 1002
%BTN_BUTTON3 = 1003
%LBL_TIPS    = 1004
GLOBAL hDlg AS DWORD
CALLBACK FUNCTION CBMAIN()
  SELECT CASE AS LONG CBMSG
    CASE %WM_SETCURSOR
      LOCAL status_text AS STRING
      LOCAL c AS LONG
      STATIC cprev AS LONG
      c = GetDlgCtrlId(CBWPARAM)
      IF c <> cprev THEN
        cprev = c
        SELECT CASE AS LONG c
        CASE %BTN_BUTTON1
          status_text = "This is button 1"
        CASE %BTN_BUTTON2
          status_text = "This is button 2"
        CASE %BTN_BUTTON3
          status_text = "This is button 3"
        CASE %LBL_TIPS
          status_text = "This is tips string"
        CASE 1
          status_text = ""
        END SELECT
        CONTROL SET TEXT hDlg, %LBL_TIPS, status_text
      END IF
    CASE %WM_COMMAND
      SELECT CASE AS LONG CBCTL
        CASE %BTN_BUTTON1
        CASE %BTN_BUTTON2
        CASE %BTN_BUTTON3
      END SELECT
  END SELECT
END FUNCTION
FUNCTION PBMAIN()
  LOCAL lRslt AS LONG
  DIALOG NEW 0, "Tips", 251, 116, 160, 60, _
    %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_MINIMIZEBOX OR %WS_VISIBLE, _
    0, TO hDlg
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON1, "Button1", 10, 10, 40, 20
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON2, "Button2", 60, 10, 40, 20
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON3, "Button3", 110, 10, 40, 20
  CONTROL ADD LABEL,  hDlg, %LBL_TIPS, "", 0, 50, 160, 10, %SS_NOTIFY
  DIALOG SHOW MODAL hDlg, CALL CBMAIN TO lRslt
END FUNCTION
 
			
		 
		
		 
	 
	
	
		
		
			
			- 
				volo
			
 
			- 
				
 - Продвинутый пользователь

 
			
			- 
			

			
			 
		-  
 
		- Сообщения: 142
 - Зарегистрирован: 10.12.2004 (Пт) 11:18
 - Откуда: Soviet Union
 
			- 
				
			
 
		
		
	
	
			
			
			
 volo » 06.01.2007 (Сб) 13:40 
			
			Дополню несколько модернизированным вариантом для ToolTip
- Код: Выделить всё
 #COMPILE EXE
#DIM ALL
#INCLUDE "WIN32API.INC"
#INCLUDE "CommCtrl.INC"
%DLG_DIALOG1 =  101
%BTN_BUTTON1 = 1001
%BTN_BUTTON2 = 1002
%BTN_BUTTON3 = 1003
%LBL_TIPS    = 1004
GLOBAL hDlg         AS DWORD
GLOBAL hToolTip     AS LONG   ' handle of tooltip window
CALLBACK FUNCTION CBMAIN()
  SELECT CASE AS LONG CBMSG
    CASE %WM_SETCURSOR
      LOCAL status_text AS ASCIIZ *128
      LOCAL c AS LONG
      STATIC cprev AS LONG
      c = GetDlgCtrlId(CBWPARAM)
      IF c <> cprev THEN
        cprev = c
        SELECT CASE AS LONG c
        CASE %BTN_BUTTON1
          status_text = "This is button 1"
        CASE %BTN_BUTTON2
          status_text = "This is button 2"
        CASE %BTN_BUTTON3
          status_text = "This is button 3"
        CASE %LBL_TIPS
          status_text = "This is tips string"
        CASE 1
          status_text = ""
        END SELECT
        CONTROL SET TEXT hDlg, %LBL_TIPS, status_text
        CALL TTOOL (status_text,c)
      END IF
    CASE %WM_COMMAND
      SELECT CASE AS LONG CBCTL
        CASE %BTN_BUTTON1
        CASE %BTN_BUTTON2
        CASE %BTN_BUTTON3
      END SELECT
  END SELECT
END FUNCTION
SUB TTOOL(a AS ASCIIZ, BYVAL cont AS LONG)
     LOCAL ti AS TOOLINFO
     
     ti.cbSize   = LEN(ti)
     ti.uFlags   = %TTF_SUBCLASS OR %TTF_IDISHWND
     ti.hWnd     = hDlg
     ti.uId      = GetDlgItem(hDlg, cont)
     ti.lpszText = VARPTR(a)
     SendMessage   hToolTip, %TTM_ADDTOOL, 0&, BYVAL VARPTR(ti)
END SUB
FUNCTION PBMAIN()
  LOCAL lRslt AS LONG
  DIALOG NEW 0, "Tips", 251, 116, 160, 60, _
    %WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_MINIMIZEBOX OR %WS_VISIBLE, _
    0, TO hDlg
    
        InitCommonControls
        hToolTip = CreateWindowEx(0&, "tooltips_class32", "", %TTS_ALWAYSTIP, 0, 0, 0, 0, 0, BYVAL 0&, GetModuleHandle(BYVAL 0&), BYVAL 0&)
    
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON1, "Button1", 10, 10, 40, 20
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON2, "Button2", 60, 10, 40, 20
  CONTROL ADD BUTTON, hDlg, %BTN_BUTTON3, "Button3", 110, 10, 40, 20
  CONTROL ADD LABEL,  hDlg, %LBL_TIPS, "", 0, 50, 160, 10, %SS_NOTIFY
  DIALOG SHOW MODAL hDlg, CALL CBMAIN TO lRslt
END FUNCTION
 
			
		 
		
		 
	 
	
	
	
	Вернуться в Power Basic
	
	Кто сейчас на конференции
	Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7