Dialog ( fenetre de log richedit )

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 023 fois - Téléchargée 28 fois

Contenu du snippet

Ce code fait la gestion d'une fenetre de log
a inclure directement dans un fichier Source
2 fonctions:
logCreate(HANDLE hwParent) ; cree la boite de dialog
logAll(PSTR pString) ; envoie la chaine zero terminal dans le RichEdit

Source / Exemple :


;	a inclure dans votre source asm
;	logCreate(HANDLE hwParent) ; cree le dialog
;	logAll(PSTR string) ; envoi la chaine string a la fenetre de log

@ EQU OFFSET
IDC_RICHEDIT1	EQU	2001

logCreate	PROTO	:DWORD
logAll	PROTO	:DWORD

; ne pas utiliser en fenetre principale

;*******************************************************************.data
;*******************************************************************	azREdit	db	"RichEd20.dll",0
	dlg01	db	"LOGVIEW",0

;*******************************************************************.data?
;*******************************************************************	hRLib		dd	?
	hwLog		dd	?

;*******************************************************************.code
;*******************************************************************; PUBLIC

logCreate	PROC	hwParent:DWORD
	invoke	LoadLibrary,@ azREdit
	and		eax,eax
	mov		hRLib,eax
	stc
	je		@F
	invoke	CreateDialogParam,hInstance,@ dlg01,hwParent,@ wpLog,0
	clc
@@:
	ret
logCreate	ENDP

;*******************************************************************
logAll	PROC USES EBX pStr:DWORD

	;
	;	log send to screen
	;

	invoke	GetDlgItem,hwLog,IDC_RICHEDIT1
	mov		ebx,eax
	push	-1
	push	-1
	invoke	SendMessage,ebx,EM_EXSETSEL,0,esp
	invoke	SendMessage,ebx,EM_REPLACESEL,FALSE,pStr
	invoke	SendMessage,ebx,EM_SCROLLCARET,0,0
	invoke	UpdateWindow,ebx
	add		esp,2*4

	ret
logAll	ENDP

;*******************************************************************; PRIVATE

wpLog	PROC	hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD

	mov		ecx,uMsg

	cmp		ecx,WM_INITDIALOG
	je		do_INITDIALOG
	cmp		ecx,WM_CLOSE
	je		do_CLOSE

do_DEFAULT:
	xor		eax,eax
	ret

do_INITDIALOG:
	push	hWin
	pop		hwLog
	push	ebx

	invoke	GetDlgItem,hWin,IDC_RICHEDIT1
	mov		ebx,eax
	push	-1
	push	0
	invoke	SendMessage,ebx,EM_EXSETSEL,0,esp
	invoke	SendMessage,ebx,EM_REPLACESEL,FALSE,esp
	invoke	SendMessage,ebx,EM_SCROLLCARET,0,0
	add		esp,2*4

	xor		eax,eax
	pop		ebx
	ret

do_CLOSE:
	invoke	FreeLibrary,hRLib
	xor		eax,eax
	ret

wpLog	ENDP

;*******************************************************************
;FICHIER RESSOURCE
;*******************************************************************
;	dans le fichier ressource copier/coller

#include "\inc\resource.h"

#define IDC_STATIC	-1

//#define LOGVIEW		2000
#define IDC_RICHEDIT1	2001

LOGVIEW DIALOG DISCARDABLE  200, 0, 500, 250
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Log"
FONT 8, "MS Sans Serif"
BEGIN
    CONTROL         "",IDC_RICHEDIT1,"RichEdit20A",ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL | WS_BORDER | WS_TABSTOP | WS_VSCROLL,1,1,498,248
END

Conclusion :


si quelqu'un sait comment mettre a jour l'ascenseur du RichEdit meme si la boite n'as pas le focus. -> patatalo

A voir également

Ajouter un commentaire

Commentaires

cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
l'ascenseur c'est la "barre de scroll", le "machin" qui te permet de faire défiler le contenu de la boîte de haut en bas et, parfois, de gauche à droite quand ça dépasse.
ToutEnMasm
Messages postés
552
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
26 mars 2016
1 -
salut,
je ne vois pas ce qu'est l'ascenseur de la richedit mais je vois tres bien comment me servir de la richedit.C'est dans le source d'editmasm,entre autres choses,avec des commentaires ,voir mon site.
ToutEnmasm

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.