Could you maybe just set up from DP's account a direct debit the day of/day after his pay day that transfers a set amount to your account for bills/rent etc. and that leaves him with ONLY a pre-set amount for all his 'extras' and then if he needs/wants more he has to ask you and you agree.
You could maybe even set up a joint account like that - i.e you have one main joint account for all bills and then you both keep your own accounts for your personal spending?
I still think first you have to sit him down and physically show him with old bills/statements just how much (or how little) money you have to play with so that when you set a limit for his and YOUR personal spending he can see what amount its coming from to help him appreciate it.
Also if you go the route of a 'set' amount for the personal spending set rules/limits as to what it covers so he cant later claim smokes or takeaway out of the grocery/food budget
My DH and I just have a set amount per payday that is our 100% own spending money - we can do with it what we like. So if I want something big I just save it for a few weeks or else I can blow it on clothes, food out etc. with no guilt. DH withdraws his $ on payday and that is that for the fortnight whereas I just tend to spend a bit here and there so some fortnights go over and others under so it evens out however neither of us have 'spending' issues so its all working fine.