|
Can anyone post a quick sample code on how to use StrecthBlt?
I have a bitmap that I want to resize to its half-size.
Thanks a lot in advance.
|
|
|
|
|
assume your image is in m_bmp, and pDC is a window DC.
CDC memDC = CreateCompatibleDC(pDC);
CBitmap *pOldMemBmp = memDC.SelectObject(&m_bmp);
pDC->StretchBlt(outX, outY, bmpWidth / 2, bmpHeight / 2, &memDC, 0, 0, bmpWidth, bmpHeight, SRCCOPY);
memDC.SelectObject(pOldMemBmp);
--
if you don't know bmpWidth and bmpHeight :
BITMAP bm;
m_bmp.GetObject(sizeof(BITMAP), &bm);
bmpWidth = bm.bmWidth;
bmpHeight = bm.bmHeight;
-c
|
|
|
|
|
Does anyone know of a tutorial or webpage that discusses how to create an app that uses more than one document types? i would be very grateful if someone could help. thanks!
|
|
|
|
|
Just add more document template(s) for your other doc/views
and see what happens when you select File / New. You'll be able to go on from there.
Else the VIEWEX sample that came with Visual Studio does what you want.
|
|
|
|
|
We use a lib and a dll to store our shared dialogs.
At compile time we get the following warning:
i:\eldis3\bib_source\eurodialoge\errdlg.h(19) : warning C4275: non dll-interface class 'CDialog' used as base for dll-interface class 'ErrDlg'
c:\programme\microsoft visual studio\vc98\mfc\include\afxwin.h(2568) : see declaration of 'CDialog'
This warning seems to be really just a warning (We cant find any real problems...
...but...
...a warning is a warning.
Does anyone knows how to get rid of this?
This is how we declare our class:
class LIB_EXPORT ErrDlg : public CDialog
where LIB_EXPORT is:
#ifdef _AFXDLL // Sonderfall MFC-Klassen in DLL
#define LIB_EXPORT AFX_EXT_CLASS
#else
#define LIB_EXPORT __declspec( dllexport )
#endif
#else // UNIX
#define LIB_EXPORT
#endif
|
|
|
|
|
Hi
seems to me that you are using MFC staticaly linked, so CDialog isn't in a DLL but in the lib. Guess youget rid of that warning when you use MFC as a shared DLL.
|
|
|
|
|
The MFC is shared (in every project)
|
|
|
|
|
I m developing a COM object for using as ASP component. Problem is that I need to do something like this.
"I want to get physical hard disk path of ASP page which uses this COM. I want to get this physical hard disk path from within VC. When ASP calls Server.CreateObject("Object") and then call some methods of COM, then in COM I want to get physical hard disc path(e.g. c:\testing\ASP\) of ASP page that uses this COM".
I think my problem is clearly understandable for you.
If someone knows its answer then please mail me at haider_haidee@usa.net
Thanks!
Haider
|
|
|
|
|
Hi,
You can get the physical hard disk path of the asp
as follow.
<%
Response.Write (Server.MapPath ("/"))
%>
Regards
Alfadhly
|
|
|
|
|
Hi,
You can use the MapPath() method of the IServer interface in C++.
Regards,
Alex Gorev,
Dundas Software.
|
|
|
|
|
Hello
It is no problem to set an icon in a button,
but I have problems to set a user defined icon.
The icon size in a buton is only 32 x 32, but
I need a schowable size of 32 x 64 (or bigger).
I use this code :
CButton m_Button;
HICON m_Test;
m_Test = AfxGetApp()->LoadIcon(Icon_Test);
m_Button.SetIcon(m_Test);
Another Question:
How can I set an icon and a text in a button ???
thank`s and bye,
Sascha
|
|
|
|
|
hi i'm charli
i don't make a file upload program on vc++ language
how can do it!!
you? yes sure ^_^
please wirte this board
please help me ~ help me~
about use wpPost or another method..
T_T
|
|
|
|
|
The following code works fine with Windows9x, but not with NT/2000. Can someone help me fix it? Or is there a better approach for moving the window rather than tracking the mouse position and use SetWindowPos(...)?
Thanks!
p.s: I know it's a Delphi code, but it's using Win32 API, not the VCL. After all, I'm converting the code to VC++
program testwin;
{$i-} // for loggin option
uses
windows,
messages;
const
szAppName = 'test window';
szClassName = 'test window class';
var
WndClass: TWNDCLASS;
Msg: TMSG;
hInst: HWND;
hMainWnd: HWND;
bDragging: Boolean;
nOldX, nOldY: Integer;
logf: Text;
function WndProc(hMainWnd: HWND; Msg, wParam, lParam: LongInt): LongInt; stdcall;
var
r: TRECT;
begin
case Msg of
WM_CLOSE:;
WM_DESTROY:
PostQuitMessage(0);
WM_LBUTTONDOWN:
begin
SetCapture(hMainWnd);
bDragging := TRUE;
nOldX := LoWord(lParam);
nOldY := HiWord(lParam);
end;
WM_LBUTTONUP:
begin
bDragging := FALSE;
ReleaseCapture;
end;
WM_MOUSEMOVE:
begin
if ((wParam = MK_LBUTTON) and
(bDragging = TRUE)) then
begin
GetWindowRect(hMainWnd, r);
r.left := r.left + (LoWord(lParam) - nOldX);
r.top := r.top + (HiWord(lParam) - nOldY);
SetWindowPos(hMainWnd, 0, r.left, r.top, 0, 0, SWP_NOSIZE);
writeln(logf, 'r.left = ', r.left);
writeln(logf, 'r.top = ', r.top);
end;
end;
end;
result := DefWindowProc(hMainWnd, Msg, wParam, lParam);
end;
procedure PreWindow;
begin
hMainWnd := CreateWindow(szClassName, szAppName,
WS_VISIBLE or WS_POPUP or WS_SYSMENU,
0, 0, 200, 100, 0, 0, hInst, nil);
ShowWindow(hMainWnd, SW_SHOWNORMAL);
UpdateWindow(hMainWnd);
end;
procedure PreClass;
begin
hInst := GetModuleHandle(nil);
WndClass.style := CS_DBLCLKS;
WndClass.lpfnWndProc := @WndProc;
WndClass.lpszClassName := szClassName;
WndClass.hCursor := LoadCursor(0, IDC_ARROW);
WndClass.hInstance := hInst;
WndClass.hbrBackground := COLOR_BTNFACE + 1;
RegisterClass(WndClass);
end;
begin
PreClass;
PreWindow;
AssignFile(logf, 'testwin.log');
Rewrite(logf);
while (GetMessage(Msg, 0, 0, 0)) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
closefile(logf);
end.
|
|
|
|
|
There's a one-line way to do this! When you receive a WM_LBUTTONDOWN message, do
PostMessage ( hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0 );
|
|
|
|
|
err...
before i try it out, may i ask, what's the effect?
does it work like winamp's easy move?
thx!!!
|
|
|
|
|
well, i tried it.
but umm, that's now what i want.
i'll give you the sample code if you feel like to play with it. it's in vc++ code. just e-mail me.
|
|
|
|
|
OK, I thought you were going for an effect like WinAmp. (That is, you can move the window by clicking and dragging in any open part of the dialog.) The code in your original post didn't come out very well (not your fault) so I couldn't really tell what you were trying to do.
|
|
|
|
|
when transferring data across the internet, what is a good way to decide in
what size blocks to send the data?
thanks
Adam
pandcc3@comwerx.net
|
|
|
|
|
There is an old rfc (approx 971? ) that deals with the limitations of certain routers / gateways in the size of packet they can send on the internet - something like ~573 bytes.
This size, or something like it, often forms the basis for the MTU (Max Transmission Unit) on a windows PC - especially win 9x.
So, if you send large blocks, you add some processing overhead as the data block is fragmented by the socket into smaller units for transmission.
This process can be avoided, I think, if you stick to a block size of 512 - (leave enough for the IP header etc).
Tim
|
|
|
|
|
Unfortunately when you send a block via TCP/IP across the internet, you don't get too much choice as to what size you want to send.
Windows likes blocks that are 4096 bytes long (at least on PC's). If you are sending via ethernet, the block will be divided to 1500 byte blocks, which will likely become 1460 bytes of data with a 40 byte TCP/IP header.
TCP/IP allows a block to be divided into smaller blocks. For instance, an ISDN router may be capable of sending 512 byte packets. At this point your blocks will be cut to 512 bytes each.
In short, I don't know how much difference it makes if you are sending a lot of data. Just my 2 cents...
|
|
|
|
|
Hi,
Is it possible to create a splitter window without using MFC, or will I need to create my own control?
regards
Richard
|
|
|
|
|
Hi
sure. MFC does it using the Win32 SDK after all - so I guess looking at the way MFC does it should show you how to do it.
Kurt
|
|
|
|
|
sorry i don't write the english wall
please read under work...
this problem is my work.
i don't access the webdatabase on client computer
how can use it?
winsock?... or remote access
please help me
have you nice day
|
|
|
|
|
If you look at microsoft word or at wordperfect, when you get to the bottom of a page, a little line appears that looks like the following:
-------------------------- End of Page --------------------
It is any way of creating this feature for an edit box? Please, please, please any response any one can give me will be greatly appreciated.
Sincerely,
Erich J. Ruth (an overworked graduate student)
|
|
|
|
|
Hi
simply use DrawText or ExTextOut of the CDC class.
Kurt
|
|
|
|