|
Hi all,
on dialog box i have a static contol i want to fit its width according to its text when dialog box is open or text change .
i use this but the control width is set less than text width..
CString strText;
m_label.GetWindowText(strText);
CClientDC dc(this);
CFont* pFont = GetFont();
CFont* pOldFont = (CFont*)dc.SelectObject(pFont);
CSize sizeText = dc.GetTextExtent(strText);
dc.SelectObject(pOldFont);
CRect rcText;
m_label.GetWindowRect(rcText);
CRect dlg_stc=rcText;
this->ScreenToClient(dlg_stc);
rcText = dlg_stc;
rcText.right = min(rcText.right, sizeText.cx);
CRect new_rect=rcText;
m_label.MoveWindow(new_rect);
can anybody help me to do this.
thanks.
modified 13-Mar-13 3:14am.
|
|
|
|
|
I have had a similar issue in the past and used the GetTextExtentPoint32() function. I also found it necessary to add the size of a couple of extra characters as the calculation seems very precise.
Use the best guess
|
|
|
|
|
Richard MacCutchan wrote: I have had a similar issue in the past and used the
GetTextExtentPoint32() function. I also found it necessary to add
the size of a couple of extra characters as the calculation seems very precise.
this also gives the same width.
|
|
|
|
|
Le@rner wrote: rcText.right = min(rcText.right, sizeText.cx);
try this for the above statement,
rcText.right = rcText.left + sizeText.cx
and try to avoid using unwanted temporary variables, you can simply have as below,
CRect rcLabel;
m_label.GetWindowRect(rcLabel); rcLabel.right = rcLabel.left + sizeText.cx; ScreenToClient(rcLabel); m_label.MoveWindow(rcLabel);
Do your Duty and Don't Worry about the Result
|
|
|
|
|
|
I have downloaded IVT library ( Integrating Vision Toolkit), I made my app dependent on this library ( as DSP project in VC6.0) , I can partially compile the app because I get "permission denied" when I get to #include preprocessor statement.
I have checked the directory permissions and I have grayed out "read only" checked in IVT directory.
All of the sources I used so far said that such grayed out "read only" checked ( in XP) does not make any difference (?) when directories are involved.
All of my app directories have that grayed out "read only" checked and I have no problem including other (OpenCV) libraries.
I am tempted to recopy / re-download the IVT files , but would like to hear from the forum what is going on here.
Appreciate any advise.
Cheers
Vaclav
Addendum
Here is the real code snippet
I must be doing something really stupid.
#pragma message("include IVT ")
#include <Z:\Program Files\IVT\ivt-1.3.19\IVT\src> // fails
#include <Z:\Program Files\IVT\ivt-1.3.19\IVT\src\Calibration> // fails
#include <Z:\Program Files\IVT\ivt-1.3.19\IVT\src\Calibration\Calibration.h> // OK
|
|
|
|
|
You cannot include complete directories in C/C++.
Use the best guess
|
|
|
|
|
You can't include a folder, only a file. If you want to add the folders to the list of places to look for include files, add them to project settings (think it's called "Additional include folders") or in the VC6 Tools-Options.
|
|
|
|
|
|
Hello all!
I'm working on a program in which, I'm receiving the bytes of an image and after storing this creating a bitmap to display.
This is my Main code Please see this..
static char buff[MAX_SIZE];
int num;
//receiving the bytes from a client
num=recv(Socket, buff, sizeof(buff), 0);
// progress the buffer
//ifstream creation
std::ifstream is;
is.open(buff, std::ios::binary);
is.seekg(0, std::ios::end);
num = is.tellg();
is.seekg(0, std::ios::beg);
//reading buffer
is.read(buff, num);
tagBITMAPFILEHEADER bfh = *(tagBITMAPFILEHEADER*)buff;
tagBITMAPINFOHEADER bih = *(tagBITMAPINFOHEADER*)(buff+sizeof(tagBITMAPFILEHEADER));
RGBQUAD rgb = *(RGBQUAD*)(buff+sizeof(tagBITMAPFILEHEADER)+sizeof(tagBITMAPINFOHEADER));
BITMAPINFO bi;
bi.bmiColors[0] = rgb;
bi.bmiHeader = bih;
char* pPixels = (buff+bfh.bfOffBits);
char* ppvBits;
hbitmap = CreateDIBSection(NULL, &bi, DIB_RGB_COLORS, (void**) &ppvBits, NULL, 0);
SetDIBits(NULL, hbitmap, 0, bih.biHeight, pPixels, &bi, DIB_RGB_COLORS);
GetObject(hbitmap, sizeof(BITMAP), &cBitmap);
|
|
|
|
|
1. Please add <pre> tags around your code so it is readable like:
std::ifstream is;
is.open(buff, std::ios::binary);
2. Please explain what your problem is.
Use the best guess
|
|
|
|
|
We have developed a COM DLL 64 bit on Windows Server 2008 R2 - 64 bit and this dll is successfully register when visual studio 2010 is installed on the machine but when on a fresh machine its unable to register with following error:
module xxxx.dll failed to load
make sure the binary is stored at the specified path or debug it to check for prob with the binary or dependent dll files
After a lot of investigation, we found that if Microsoft C++ runtime 2010 10.0.3019 is installed, then only dll will be registered. Can anyone provide the required list of dependecy. Thanks in advance.
|
|
|
|
|
Member 9903065 wrote: Can anyone provide the required list of dependecy. You should probably try the Microsoft Visual Studio website for that information.
Use the best guess
|
|
|
|
|
You have answered your own question, sort of.
You need the *redistributable* runtime package. Which you deliver along with your own code.
Check the folder of Visual Studio. (Redist)
Q. Hey man! have you sorted out the finite soup machine?
A. Why yes, it's celery or tomato.
modified 12-Mar-13 11:24am.
|
|
|
|
|
I need to play a mp3 file on UPNP device (TV) using program.
Could you help me with related articles or any other information.
|
|
|
|
|
|
Hello!
Let's say I load a "data.bin" file in dinamic memory using a program.
Now, can I by means of C++ code, find out using another program, if a file called "data.bin" is loaded in memory?
Thanks!
|
|
|
|
|
You cannot. Without hacking, you can't read memory of other processes.
Veni, vidi, vici.
|
|
|
|
|
|
You are welcome.
Veni, vidi, vici.
|
|
|
|
|
Is calling ReadProcessMemory[^] hacking? It would no doubt end up that way if the OP tried to use it to solve his problem.
Steve
|
|
|
|
|
Stephen Hewitt wrote: Is calling ReadProcessMemory[^] hacking?
Definitely not.
It simply means Carlo wasn't aware that Microsoft gently provides such a function .
Veni, vidi, vici.
|
|
|
|
|
What are you trying to accomplish? This sounds like an instance of the XY problem[^].
|
|
|
|
|
Well yes, it is a XY problem.
When I'm opening a txt file from an application which I made I want to open another instance of this application with the file opened in it. So I don't want to load all the dlls and bins again, but just point to them in the memory (because the files were already loaded by the application which was first opened).
I want to do this because I cannot make the application a MSDI one, because it's to hard to do for me.
modified 12-Mar-13 7:10am.
|
|
|
|
|
I don't think you can interfere much with how images (executables, not bitmaps) are loaded, but they're partly shared anyway. Don't ask me for too much detail, I'm not very familiar with what exactly windows does with images and/or memory mapped files.
That's all much too complex for such a goal anyway - just look into MDI, it'll be simpler.
|
|
|
|