|
Hi!
I need help to print out the points to the rectangles and save it in a array and use it for other functions...
The code:
void CObligatorisk_oppgaveView::OnLButtonDown(UINT nFlags, CPoint point)
{
leftdown = point;
}
void CObligatorisk_oppgaveView::OnLButtonUp(UINT nFlags, CPoint point)
{
leftup = point;
array.Add(CRect(leftup, leftdown));
Invalidate(false);
}
void CObligatorisk_oppgaveView::OnPaint()
{
CPaintDC dc(this);
//rect = CRect(leftdown,leftup);
//dc.Rectangle (rect);
int length = array.GetSize();
for(int i=0;i
|
|
|
|
|
Did it work for one rectangle when the lines below CPaintDC dc(this); were uncommented? Is there anymore information you can add? Your code looks fine to me.
|
|
|
|
|
I'll assume you are tracking the point passed to OnMouseMove for drawing purposes.
As for drawing: You need to normalize the rectangle before drawing it. That is the lower right-hand courner of the rectangle must be greater than (or equal to) the upper left-hand courner.
top <= bottom
left <= right
INTP
"The more help VB provides VB programmers, the more miserable your life as a C++ programmer becomes."
Andrew W. Troelsen
|
|
|
|
|
I have a wtl project with date time picker control on it.
simple question hopefully.
how do I get the time or date back from it once the user changes it?
I want to compare the current time with what the user enters.
|
|
|
|
|
The CDateTimePickerCtrl uses the SYSTEMTIME structure for it’s time. Getting it goes a little something like this:
CDateTimePickerCtrl dtp(GetDlgItem(IDC_DATETIME1));<br />
SYSTEMTIME st;<br />
Dtp.GetSystemTime(&st);
If your using it with the SHOW NONE property you can check the return value of GetSystemTime() making sure it returns GDT_VALID , if it’s GDT_NONE then the checkmark is cleared. If you want to use WTL::CTime add #include <atltime.h> to your stdafx.h and you can pass the SYSTEMTIME to it’s constructor and bam. CTime from a CDateTimePickerCtrl .
CDateTimePickerCtrl dtp(GetDlgItem(IDC_DATETIME1));<br />
SYSTEMTIME st;<br />
Dtp.GetSystemTime(&st);<br />
CTime t(st);
|
|
|
|
|
Thanks Mark
works a treat!
|
|
|
|
|
I have my small program which creates process, but now i want to manipulate more than one process at a time. Is that possible? Like i have created a notepad process and later while notepad is running i create another process cmd.exe, can i suspend them all one after the other or shut them consecutively maybe by specifying process id,s or handles
-oam-
|
|
|
|
|
Aww man you can do all kinds of rad things with processes. Pretty much everything that Task Manager can do you can do. What you want to do is call CreateProcess() and pay attention to the last argument, a PROCESS_INFORMATION structure which has the hProcess handle. With that your free to call functions like TerminateProcess() and SuspendThread() . However TerminateProcess() is pretty drastic and does not guarantee that anything will be freed and the process may need to run critical cleanup code. TerminateProcess() is like shutting a program off by unplugging the power. You could see if a process is associated with a window by calling EnumWindows() and comparing the ProcessId, which you can get from GetWindowThreadProcessId() .
Check out http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/process_and_thread_functions.asp[^] for Process/Thread manipulation.
|
|
|
|
|
Well my question lies in how to specify the handle or the process id of one the processes i have created to shut it down or suspend it that particular process. Pliz give me a segment code if you have.
<br />
<br />
#include <windows.h><br />
#include <stdio.h><br />
#include <windef.h><br />
#include <winbase.h><br />
#include <imagehlp.h><br />
#include <stdlib.h><br />
typedef struct _iobuf FILE;<br />
#include <assert.h><br />
#include <sys/types.h><br />
#include <sys/stat.h><br />
int menu(void)<br />
{<br />
int choice;<br />
<br />
printf ("\n");<br />
printf ("*****************************************\n");<br />
printf ("*\t\t\t\t\t*\n*\tCHECKPOINTING SYSTEM \t\t*\n");<br />
printf ("=========================================");<br />
printf ("\n=\t 1: Create a process \t=");<br />
printf ("\n=\t 2: Suspend the process\t=");<br />
printf ("\n=\t 3: Resume the process\t=");
printf ("\n=\t 4: System Information\t=");<br />
printf ("\n=========================================\n");<br />
printf ("\n");<br />
<br />
printf("\nEnter choice (1-4): ");<br />
scanf("%d", &choice);<br />
return choice; <br />
}<br />
<br />
int main(int argc, char **argv) <br />
{<br />
<br />
PROCESS_INFORMATION pi; <br />
STARTUPINFO si; <br />
HANDLE hProcess;<br />
HANDLE hThread = 0;<br />
DWORD NumberOfBytesRead = 0;<br />
DWORD baseaddr = 0;<br />
DWORD lpAddr = 0;<br />
PMEMORY_BASIC_INFORMATION lpBuffer = 0;<br />
DWORD dwLength = 200000;<br />
DWORD flNewProtect =0;<br />
PDWORD lpflOldProtect = 0;<br />
DWORD dwSize =0;<br />
LPCVOID lpBaseAddress = 0;<br />
DWORD nSize = 0;<br />
LPDWORD lpNumberOfBytesWritten = 0;<br />
TCHAR lpApplicationName[_MAX_PATH]="";<br />
SYSTEM_INFO sinfo;<br />
LPDWORD lpExitCode = 0;<br />
HWND hWnd = 0;<br />
DWORD dwProcessID = 0;<br />
UINT GetBase();<br />
LPCONTEXT lpContext = 0;<br />
int nRet = 0;<br />
unsigned int regnum = 0;<br />
<br />
<br />
char* ans="";<br />
int choice;<br />
<br />
while((choice = menu())!=5)<br />
{<br />
switch (choice)<br />
{<br />
<br />
case 1: <br />
<br />
GetStartupInfo(&si);<br />
lpAddr = 0;<br />
ZeroMemory( &si, sizeof(si) );<br />
si.cb = sizeof(si);<br />
ZeroMemory( &pi, sizeof(pi) );<br />
printf("Enter process you want to execute: ",lpApplicationName);<br />
scanf ("%s",lpApplicationName);<br />
printf("Process %d reporting for creation\n",GetCurrentProcessId());
<br />
CreateProcess(NULL, <br />
lpApplicationName, <br />
NULL, <br />
NULL, <br />
FALSE, <br />
CREATE_NEW_CONSOLE, <br />
NULL, <br />
NULL, <br />
&si, <br />
&pi <br />
); <br />
hProcess = pi.hProcess;<br />
printf("New Process ID: %d ",pi.dwProcessId);<br />
printf("has started \n"); <br />
break;<br />
<br />
case 2:<br />
<br />
SuspendThread(pi.hThread);
<br />
printf("\nThe thread of ID: %d",pi.dwProcessId);<br />
printf(" has been suspended!\n");<br />
GetLastError();<br />
<br />
break;<br />
<br />
case 3:<br />
<br />
ResumeThread(pi.hThread);
GetLastError();<br />
break;<br />
<br />
case 4:<br />
printf("\nSystem Info: ",&sinfo);
break;<br />
<br />
default:<br />
printf("\nInvalid choice: ");<br />
}<br />
}<br />
<br />
return (0);<br />
}<br />
|
|
|
|
|
You code looks fine, your passing the handles of the process and thread from the PROCESS_INFORMATION structure that gets filled out when you call CreateProcess(). Perhaps make sure that these calls are succeeding by checking the return values. If you wanted to keep track of more then one process then you could use a container class like MFC's CArray or CList or STL's vector or list.
|
|
|
|
|
Mark Petrik Sosa wrote:
Perhaps make sure that these calls are succeeding by checking the return values. If you wanted to keep track of more then one process then you could use a container class like MFC's CArray or CList or STL's vector or list.
I don't have any idea about MFC arrays because i am using C unless if they can work in c code. But i have no idea with MFC or CList nor STL vector. You can give me a go ahead or segment code to handle it
-oam-
|
|
|
|
|
I’m going to save and load an XML-file in an SQL server. I really like suggestions on how to tackle the problem. My application is an MFC C++ project.
_____________________________
...and justice for all
APe
|
|
|
|
|
I use checker = atoi( (LPCTSTR)str) to convert CString to int and checker to check if the number typed in CEdit box is within valid range.
Now the problem is when user type a number then follow by letters. 1234abcd would return checker as 1234. How would I go about checking for non-integer characters?
Or is there anyway to limit user to only type in integers?
|
|
|
|
|
Anonymous wrote:
Or is there anyway to limit user to only type in integers?
edit controls have a "number only" property. check for it in the resource editor / property viewre.
Image Toolkits | Image Processing | Cleek
|
|
|
|
|
One good way to parse your strings is to use _stscanf like so:
int a;
CString mytext = _T("123Hello");
if(_stscanf(mytext, _T("%d"), &a) != 1)
{
}
Joel Holdsworth
Wanna give me a job this summer?
Check out my online CV and project history[^]
|
|
|
|
|
U can use _ttoi() .
keep smilling.....b'coz smile is the shortest distance between people....
|
|
|
|
|
hey everyone
i have this project i need to do that uses setwindowshookex to set a message hook on a given process ID and for each keydown that that screen gets i replace the key with the char from a given text file
so like
the procces ID is notepad and the file is Omri.txt witch has
"Hello World" in it
so if i type in notepad "asdasdasd" it will type "Hello Wor"
anyway, thats the project
so what i did is make a DLL with the functions
open file
close file
get char
set hook
unhook
and getkeys
getkeys is the function windows calles when a key is pressed
so my problem is, when windows calles the function it cant access the opened file becuse it gets a difrent data field
i tryed puting the fstream var in shared memory but it didnt help
anyone here got any idea on how i shold do this?
If You Can't Beat Omri, Join Omri.
Four out of Five Dentists Recommend Omri.
Plop, Plop, Fizz, Fizz, Oh, What an Omri it is!
Silly Rabbit, Omri is for Kids.
Gee, Your Omri Smells Terrific.
The Coolest Omri on Ice.
At 29p an Omri, It's Not a Stress on Your Pocket.
Every Kiss Begins With Omri.
I am Stuck on Omri, 'Cause Omri's Stuck on Me.
Doing It Right Before Your Omri.
|
|
|
|
|
Hi, everybody,
I develop a browser helper object. I need to update the address in the address bar to a different address after user navigates to it. I tried to handle the NavigateComplete event but failed to make change to the address. Any change that makes to the address causes crash in IE. How can I solve this problem?
Thanks.
Lan hue sau ai lan hue heo
Lan hue sau doi trong heo ngoai tuoi
|
|
|
|
|
|
Could you show me an example?
Thanks.
Lan hue sau ai lan hue heo
Lan hue sau doi trong heo ngoai tuoi
|
|
|
|
|
hello friends
plz tell me the function to get size of file using filename.
|
|
|
|
|
How about GetFileSize() ?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
but in this i have to pass handle of file, i want to use name of file to get size.
or i can use handle of file if i get to know handle of file(is there any function from which i get handle of file)
bye
|
|
|
|
|
You can use the FindFirstFile API to get this info!
Don't try it, just do it!
|
|
|
|
|
smarty12 wrote:
is there any function from which i get handle of file
Yes, CreateFile() .
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|