|
thanks for the response i would like to explain my req clearly
wat i want exactly is to drag the list view only not the form form should be in fixed size ... but list view should be resizable in drag event
|
|
|
|
|
When you say 'form' I assume you mean that this is a Windows Forms CLI project. In which case you just need to adjust the properties of the list view to make it draggable, as far as I am aware.
It's time for a new signature.
|
|
|
|
|
I want to write a driver with MS Visual C++ 10 using WDK 7.1.0 but when I compile the source code I get this message:
ClCompile:
source.cpp
d:\winddk\7600.16385.1\inc\ddk\wdm.h(14198): fatal error C1189: #error : "No target architecture defined"
Build FAILED.
My CPU architecture is x86 so why does this error occur while x86 architecture is defined in wdm.h? and what's the solution?
|
|
|
|
|
Just define it at the top in your main header :
#define _x86_ <place your year of birth here...>
virtual void BeHappy() = 0;
|
|
|
|
|
Yes you are right. I defined _X86_ and it worked.
Now I have 2 new question:
1- Does making device driver need to be create in a makefile project?
2- After defining _X86_ I got these messages why?
source.obj : error LNK2001: unresolved external symbol __imp__IoDeleteSymbolicLink
source.obj : error LNK2001: unresolved external symbol __imp__IoDeleteDevice
source.obj : error LNK2001: unresolved external symbol __imp__IoCreateSymbolicLink
source.obj : error LNK2001: unresolved external symbol __imp__IoCreateDevice
I include ntoskrnl.lib too.
|
|
|
|
|
1. I do not know it, sorry,
but you may be have an example provided by the kit (?)
2. Try this pragma in your main header, please :
#pragma comment(lib, "ntoskrnl.lib")
virtual void BeHappy() = 0;
|
|
|
|
|
Take a look at the header file referred to in the error message, it should give you some clue as to what is missing. Alternatively the DDK documentation should explain what you need to set up in a new project.
It's time for a new signature.
|
|
|
|
|
I recently developed a driver for a PCI device - and all my reading pointed me STRONGLY in the directtion of using the DDK itself to do the compile.
So, I used VS to create the actual code, and alt tabbed to a checked / free build environment dos window.
Press build, and you're done.
The will generate error / warning files. You can load them in VS - and when a build is done, VS prompts to reload them.
There are articles out there to batch the build from f5, but they seemed over complex.
Good luck,
Iain.
ps, In case it's not clear - go to Start, All Programs, Windows Driver Kits, WDK 1.2.3.4, Build environments, etc.
I am one of "those foreigners coming over here and stealing our jobs". Yay me!
|
|
|
|
|
How to construct CTime date with 1 jan 2010?
|
|
|
|
|
Use the constructor that allows you to set the day of month, month of year and year.
It's the second one down on this[^] page.
Cheers,
Ash
|
|
|
|
|
Hello, I have a question about the tab order in a MFC dialog with a CTabCtrl or CPropertySheet with some tab pages and controls on the pages and some other controls at top and at bottom in the main dialog.
The layout of the main dialog is:
-----------------------
Button1 Button2 Button3
CTabCtrl or Sheet with Page1, Page2, Page3
Button4 Button5 Button6
-----------------------
I would expect that the tab order is (active Page is Page1):
1) Button1 -> Button2 -> Button3 -> Tab of Page1 -> All controls of Page1 -> Button4 -> Button5 -> Button6
But the tab order is:
2) Button1 -> Button2 -> Button3 -> Button4 -> Button5 -> Button6 -> All controls of Page1 -> Tab of Page1
Should it be 1) or 2) and why?
Thanks for your help,
Andreas.
|
|
|
|
|
Andreas,
You can hold Ctrl+D and you will see the tab order of all controls with their numbers. Now to modify it, click on control on which you want a tab to start at first, now go on clicking on controls as per your need and the tab order will get set for you. Alternately, you can also modify the .rc file of your application to set the tab order but that is a tricky and dangereous way of doing it.
Better to follow the first approach and the Visual Studio will make things for you.
Thanks,
Anand.
|
|
|
|
|
Hello Anand,
I know that I can edit the tab order in resource editor and I have done it already for this example. The question was if the user would expect 1) or 2) as the result.
Andreas.
|
|
|
|
|
C++ Hacker wrote: Should it be 1) or 2) and why?
I would expect #2. I've seen other apps do this so I am already familar with it.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
2) Is confusing for the user if more than one/two/three controls are behind the tab control in tab order.
Andreas.
|
|
|
|
|
How to get the system Clock Style, I mean weather it 12 hr clock style or 24 hr clock style.
Thanks.
|
|
|
|
|
The system clock does not have a style it is merely a counter used to calculate the current time since some predefined date. However any clock displays used in Windows will access the regional settings to determine how such times should be displayed. I am not sure of the simple way to access the details but you could take a look at the HKEY_CURRENT_USER\Control Panel\International registry key.
It's time for a new signature.
|
|
|
|
|
Try it :
bool GetTimeFormattedBySystem(const SYSTEMTIME& sSomeTime,
CString& cszReceiver)
{
static const int iTimeStrLen(40);
static TCHAR szResult[iTimeStrLen];
cszReceiver.Empty();
if (GetTimeFormat(LOCALE_USER_DEFAULT,
0,
&sSomeTime,
NULL,
szResult,
iTimeStrLen)) {
cszReceiver = szResult;
}
return (0 < cszReceiver.GetLength());
}
virtual void BeHappy() = 0;
|
|
|
|
|
Have you tried GetLocaleInfo(LOCALE_ITIME) ?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
This is my post accidently put in the lounge...
>>>>
This should be pretty easy, right? I'm feeling pretty brain dead right now, though...
In CTreeCtrl the nodes have a DWORD data item and I want to make use of that as a 24 bit value and an 8 bit value. What would be a nice way of getting and setting the DWORD from two other variables?
Thanks,
Ben.
<<<<
Anyway I'm thinking something like (in pseudocode...)
getting...
8bitVal = DWordVal mod 2**24
32bitVal = DWordVal / 2**24
setting...
DWordVal = 24bitVal * 2**24 + 8bitVal
I haven't tried this so is probably wrong and I have a feeling that that there is a nicer way of doing it?
|
|
|
|
|
How about
DWORD dwData = <value>;
DWORD dwEightBit = (dwData & 0x000000FF);
DWORD dwTwentyFourBit = (dwData & 0xFFFFFF00) >> 8;
and
DWORD dwEightBit = <value1>;
DWORD dwTwentyFourBit = <value2>;
DWORD dwData = (dwTwentyFourBit << 8) | dwEightBit;
This has just been typed in, not compiled or tested, you understand. The second code snippet assumes value1 <= 255 and value2 <= 16777215.
|
|
|
|
|
Thanks very much for this. I will have a good look at this later. I'm out of time now. My programming shift is 8am to 8.30am. Have to get myself to the checkouts at the supermarket for my day job now!
|
|
|
|
|
This has been very helpful to me. Thanks very much. Somehow the world of bitwise operations was eluding me that morning!
|
|
|
|
|
Oh god, I know I'm confused. Loads of mistakes. I know. Rather than edit my previous post here are my own ammendments...
If the 24 bit value are the high end bits and the 8 bit value are the low end bits...
getting...
8bitVal = 32bitVal mod 2**8
24bitVal = 32bitVal / 2**8
setting...
32bitVal = 24bitVal * 2**8 + 8bitVal
Still think there may be an easier way of doing this...
|
|
|
|
|
Ben Aldhouse wrote: Still think there may be an easier way of doing this.
Yes, don't go in for complex mathematical expressions, even though the compiler will optimise them. Reread the previous answer and adjust for whichever part is the 8-bit and whichever is the 24-bit. In either case just use simple shifts AND and OR operators thus:
DWORD dwValue = (bits8 << 24) | bits24;
DWORD dwValue = (bits24 << 8) | bits8;
And to split
bits8 = dwValue & 0xFF;
bits24 = dwValue >> 8;
bits24 = dwValue & 0xFFFFFF;
bits8 = dwValue >> 24;
It's time for a new signature.
|
|
|
|